MongoDB में कई उप-दस्तावेज़ों को फ़िल्टर करने के लिए, कुल () का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं -
> db.demo200.insertOne(... {... "Id":"101",... "details1":[... {... "isActive":true,... " सब्जेक्टनाम":"MySQL"...},{... "isActive":false,... "SubjectName":"Java"...}... ],... "details2":[... {... "isActive":false,... "Name":"David"...},{... "isActive":true,... "Name":"Mike"...} ... ]... }...);{ "स्वीकृत" :सच, "insertId" :ObjectId("5e3c374f03d395bdc21346e4")}
संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -
> db.demo200.find();
यह निम्नलिखित आउटपुट देगा -
{ "_id" :ObjectId("5e3c374f03d395bdc21346e4"), "Id" :"101", "details1" :[{"isActive" :true, "SubjectName" :"MySQL" }, { "isActive" :false , "SubjectName" :"Java" } ], "details2" :[{"isActive" :false, "Name" :"David" }, { "isActive" :true, "Name" :"Mike" } ]}पूर्व>एकाधिक उप-दस्तावेजों को फ़िल्टर करने के लिए निम्नलिखित क्वेरी है -
> var out=[... {... "$match":{... "Id":"101",... "details1.isActive":true,... "details2.isActive ":सच...}...},... {"$अनविंड":"$details1" },... { "$अनविंड":"$details2" },... {... " $match":{... "details1.isActive":true,... "details2.isActive":true...}...},... {... "$group":{.. . "_id":{... "_id":"$_id",... "Id":"$Id"...},... "details2":{ "$addToSet" :"$details2 " },... "details1":{ "$addToSet" :"$details1" }... }... },... {... "$project":{... "_id":0,... "Id":"$_id.Id",... "details2":1,... "details1":1...}...}...]>> db.demo200 .एग्रीगेट(बाहर)यह निम्नलिखित आउटपुट देगा -
{ "details2" :[{"isActive" :true, "Name" :"Mike" } ], "details1" :[{"isActive" :true, "SubjectName" :"MySQL" } ], "Id " :"101" }