मुझे लगता है कि आप ऐसा कुछ करना चाहते हैं। मैंने इस प्रश्न का परीक्षण नहीं किया, लेकिन मैं आपके स्थान पर यही कोशिश करूंगा। यह केवल 3.6 मोंगोडब पर संभव है, क्योंकि यह एकाधिक जुड़ने का समर्थन करता है। विचार सभी 3 संग्रहों में शामिल होना है। सबसे पहले शामिल हों माता-पिता और व्यक्ति द्वारा माता-पिता आईडी, और व्यक्ति "parentsId"। दूसरा जुड़ाव माता-पिता और दादा-दादी हैं। फिर आप दादा-दादी के नाम से फ़िल्टर करते हैं और आपको एक दस्तावेज़ मिलेगा जिसमें वह दादा-दादी, उसका बेटा (माता-पिता), और उसका पोता (व्यक्ति) होगा। तब आप केवल उस व्यक्ति को प्रोजेक्ट करते हैं।
db.Parents.aggregate([
{
$lookup:{
from:"Person",
localField:"_id",
foreignField:"parentId",
as:"Person"
}
},
{
$unwind:"$Person"
},
{
$lookup:{
from:"Grandparents",
localField:"grandparentId",
foreignField:"_id",
as:"Grandparents"
}
},
{
$unwind:"$Grandparents"
},
{$match:{Grandparents.name:"x"}},
{$project:{Person.name:1,Person._id:1}}
}])
मुझे लगता है कि यह चाल चलेगा