Database
db={"story":[{"_id":ObjectId("5a934e000102030405000005"),comments:{reply:[],likedBy:[{isDisliked:false,_id:ObjectId("5a934e000102030405000000"),likedBy:ObjectId("5a934e000102030405000001"),},{isDisliked:false,_id:ObjectId("5a934e000102030405000003"),likedBy:ObjectId("5a934e000102030405000004"),},{isDisliked:true,_id:ObjectId("5a934e000102030405000003"),likedBy:ObjectId("5a934e000102030405000006"),}]}},],"users":[{_id:ObjectId("5a934e000102030405000001"),"name":"Alice"},{_id:ObjectId("5a934e000102030405000004"),"name":"Bob"},{_id:ObjectId("5a934e000102030405000006"),"name":"Charlie"}]}
Query
db.story.aggregate([{"$match":{"_id":ObjectId("5a934e000102030405000005")}},{"$unwind":"$comments.likedBy"},{"$match":{"comments.likedBy.isDisliked":false}},{"$project":{likedBy:"$comments.likedBy.likedBy"}},{"$lookup":{"from":"users","localField":"likedBy","foreignField":"_id","as":"user"}},{"$unwind":"$user"},{$replaceRoot:{newRoot:"$user"}}])