आप एक $lookup
चाहते हैं लेकिन आप चाहते हैं कि एसक्यूएल की तरह शामिल हों, रूट दस्तावेज़ में सभी फ़ील्ड इसलिए 1 दस्तावेज़ में विलय करने के लिए एक आराम और प्रतिस्थापित रूट जोड़ा जाता है।
प्रश्न
db.user_relations.aggregate([
{
"$match": {
"$expr": {
"$eq": [
"$userId",
"userId1"
]
}
}
},
{
"$unwind": {
"path": "$friendsArray"
}
},
{
"$sort": {
"friendsArray.lastTimeStamp": 1
}
},
{
"$limit": 10
},
{
"$replaceRoot": {
"newRoot": "$friendsArray"
}
},
{
"$lookup": {
"from": "users",
"localField": "userId",
"foreignField": "_id",
"as": "joined__"
}
},
{
"$unwind": {
"path": "$joined__"
}
},
{
"$replaceRoot": {
"newRoot": {
"$mergeObjects": [
"$joined__",
"$$ROOT"
]
}
}
},
{
"$project": {
"joined__": 0
}
}
])