विशिष्ट नेस्टेड गुणों पर प्रक्षेपण के लिए, MongoDB में समुच्चय () का उपयोग करें। आइए पहले दस्तावेजों के साथ एक संग्रह बनाएं -
> db.demo379.insertOne(... {... "विवरण1":{... "विवरण2":{... "विवरण3":{... "10":"जॉन",। .. "50":"क्रिस",... "40":"डेविड",... "30":"माइक"...}...}...}...}... );{ "स्वीकृत" :सच, "insertId" :ObjectId("5e5a94f82ae06a1609a00b10")}
संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -
> db.demo379.find().pretty();
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
{ "_id" :ObjectId("5e5a94f82ae06a1609a00b10"), "details1" :{ "details2" :{ "details3" :{ "10" :"John", "30":"Mike", "40" :"डेविड", "50" :"क्रिस" } }}}
विशिष्ट नेस्टेड गुणों पर प्रक्षेपण के लिए क्वेरी निम्नलिखित है -
> db.demo379.aggregate([... {"$addFields":{... "details1.details2.details3":{... "$arrayToObject":{... "$filter":{... "इनपुट":{ "$objectToArray":"$details1.details2.details3" },... "as":"out",... "cond":{... "$and" :[... {"$gte":["$$out.k", "35"] },... { "$lte":["$$out.k", "60"] }, ... ]... }... }... }... }... } }... ])
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
{ "_id" :ObjectId("5e5a94f82ae06a1609a00b10"), "details1" :{ "details2" :{ "details3" :{ "40" :"David", "50" :"Chris" } } } } } /पूर्व>