इसके लिए $अनविंड के साथ एग्रीगेट () का इस्तेमाल करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं -
> db.demo583.insert([... {... "details1" :[... {... "details2" :[... {... "ismarried" :true,.. . "नाम":"क्रिस"...},... {... "विवाहित":सच,... "नाम":"बॉब"...}...]...},। .. {... "विवरण 2":[... {... "विवाहित":झूठा, ... "नाम":"क्रिस"...},... {... "विवाहित" :सच,... "नाम" :"माइक"...}... ]...}... ]...}... ]);बल्कवाइट रिसेट ({"राइट एरर्स" :[], "राइट कॉन्सर्नएरर्स " :[ ], "nInserted" :1, "nUpserted" :0, "nMatched" :0, "nModified" :0, "nRemoved" :0, "upserted" :[ ]})
संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -
> db.demo583.find();
यह निम्नलिखित आउटपुट देगा -
{ "_id" :ObjectId("5e91d3c4fd2d90c177b5bcc1"), "details1" :[ { "details2" :[ { "ismarried" :true, "Name" :"Chris" }, { "ismarried" :true, " नाम":"बॉब"}]}, {"विवरण2":[{"विवाहित":झूठा, "नाम":"क्रिस"}, {"विवाहित":सच, "नाम":"माइक"}]}] }पूर्व>उप-दस्तावेज़ द्वारा उप दस्तावेज़ों को फ़िल्टर करने की क्वेरी निम्नलिखित है -
> var q=[... {... "$match":{... "details1.details2.isMarried":true,... "details1.details2.Name":"Chris".. . }... },... {... "$अनविंड":"$details1"... },... {... "$अनविंड":"$details1.details2"... } ,... {... "$match":{... "details1.details2.isMarried":true,... "details1.details2.Name":"Chris"...}...}. .. ];> db.demo583.aggregate(q).pretty();यह निम्नलिखित आउटपुट देगा -
{ "_id" :ObjectId("5e91d3c4fd2d90c177b5bcc1"), "details1" :{ "details2" :{ "ismarried" :true, "Name" :"Chris"} }}