इसके लिए $let के साथ $expr का उपयोग करें। यहां $let का उपयोग अस्थायी वेरिएबल परिभाषित करने के लिए किया जाता है। $expr का उपयोग एग्रीगेशन एक्सप्रेशन के लिए किया जाता है। कलेक्शन बनाएं:
> db.demo72.insertOne({
StudentDetails: [
{ "Name": "Chris", "Age": 21 },
{ "Name": "David", "Age": 23 },
{ "Name": "Bob", "Age": 20 }
]
});
{ "acknowledged": true, "insertedId": ObjectId("5e29b4ad71bf0181ecc42269") }
सभी डॉक्यूमेंट्स देखें:
> db.demo72.find().pretty();
आउटपुट:
सबडॉक्यूमेंट ऐरे के nth एलिमेंट (वेरिएबल इंडेक्स) पर क्वेरी:
> db.demo72.find({ $expr: { $let: { vars: { fst: { $arrayElemAt: ["$StudentDetails", 1] } }, in: { $eq: ["$$fst.Name", "David"] } } } })परिणाम: