इसके लिए MongoDB में aggregate() का उपयोग करें। आइए 3 स्तरों के नेस्टेड डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं:
> db.demo736.insertOne( { "_id": "101", "details1": [ { "details2": [ { "details3": { "Name": "John" } } ] } ] } ); { "acknowledged" : true, "insertedId" : "101" }
> db.demo736.insertOne( { "_id": "102", "details1": [ { "details2": [ { "details3": { "Name": "Robert" } } ] } ] } ); { "acknowledged" : true, "insertedId" : "102" }
find() से सभी डॉक्यूमेंट्स देखें:
> db.demo736.find();
आउटपुट:
{ "_id" : "101", "details1" : [ { "details2" : [ { "details3" : { "Name" : "John" } } ] } ] }
{ "_id" : "102", "details1" : [ { "details2" : [ { "details3" : { "Name" : "Robert" } } ] } ] }
MongoDB में एम्बेडेड डॉक्यूमेंट्स की सरणी (3 स्तर) को फ़िल्टर करने के लिए aggregation क्वेरी:
> db.demo736.aggregate([ ... { "$unwind": "$details1" }, ... { "$unwind": "$details1.details2" }, ... { "$match": { "details1.details2.details3.Name": "Robert" } }, ... { "$project": { _id: 0, Name: "$details1.details2.details3" } } ... ])
परिणाम:
{ "Name" : { "Name" : "Robert" } }