Database
db={"friends":[{RequesterId:2,ReceiverId:3,Status:1},{RequesterId:4,ReceiverId:2,Status:1},{RequesterId:3,ReceiverId:4,Status:1}],"users":[{ActorId:1,Name:"MSPRetro",Progression:{Money:500,Fame:100,Fortune:1000},Extra:{IsExtra:0},Room:{RoomActorLikes:[2,3,4]}},{ActorId:2,Name:"Admin",Progression:{Money:800,Fame:200,Fortune:1500},Extra:{IsExtra:0},Room:{RoomActorLikes:[1,3]}},{ActorId:3,Name:"CoAdmin",Progression:{Money:1000,Fame:300,Fortune:2000},Extra:{IsExtra:0},Room:{RoomActorLikes:[1,2]}},{ActorId:4,Name:"Sarah",Progression:{Money:1200,Fame:200,Fortune:2500},Extra:{IsExtra:0},Room:{RoomActorLikes:[1]}}]}
Query
db.friends.aggregate([{"$match":{"$or":[{"RequesterId":2},{"ReceiverId":2}],"Status":1}},{"$lookup":{"from":"users","let":{"actorId":{"$cond":[{"$eq":["$RequesterId",2]},"$ReceiverId","$RequesterId"]}},"pipeline":[{"$match":{"$expr":{"$or":[{"$eq":["$$actorId","$ActorId"]}]}}},{"$addFields":{"RoomLikes":{"$size":"$Room.RoomActorLikes"}}},{"$project":{"_id":0,"ActorId":"$ActorId","Name":"$Name","Money":"$Progression.Money","Fame":"$Progression.Fame","Fortune":"$Progression.Fortune","IsExtra":"$Extra.IsExtra","RoomLikes":"$RoomLikes"}}],"as":"friends"}},{"$lookup":{"from":"users","pipeline":[{"$match":{"ActorId":2}},{"$addFields":{"RoomLikes":{"$size":"$Room.RoomActorLikes"}}},{"$project":{"_id":0,"ActorId":"$ActorId","Name":"$Name","Money":"$Progression.Money","Fame":"$Progression.Fame","Fortune":"$Progression.Fortune","IsExtra":"$Extra.IsExtra","RoomLikes":"$RoomLikes"}}],"as":"user"}},{"$project":{"newArray":{"$concatArrays":["$user","$friends"]}}},{"$unwind":"$newArray"},{"$replaceRoot":{"newRoot":"$newArray"}},{"$group":{"_id":"$ActorId","ActorId":{"$first":"$ActorId"},"Name":{"$first":"$Name"},"Money":{"$first":"$Money"},"Fame":{"$first":"$Fame"},"Fortune":{"$first":"$Fortune"},"IsExtra":{"$first":"$IsExtra"},"RoomLikes":{"$first":"$RoomLikes"}}},{"$match":{"ActorId":{"$ne":1},"IsExtra":0}},{"$sort":{"Fame":-1}},{"$skip":0},{"$limit":7}])