MongoDB-তে একাধিক সাব-ডকুমেন্ট ফিল্টার করতে, aggregate() ব্যবহার করুন। আসুন নথি-
সহ একটি সংগ্রহ তৈরি করি> db.demo200.insertOne(... {... "Id":"101",... "details1":[... {... "isActive":true,... " SubjectName":"MySQL"... },{... "isActive":false,... "SubjectName":"Java"... }... ],... "details2":[.. . {... "isActive":false,... "নাম":"ডেভিড"... },{... "isActive":সত্য,... "নাম":"মাইক"... } ... ]... }...);{ "স্বীকৃত" :সত্য, "insertedId" :ObjectId("5e3c374f03d395bdc21346e4")}
Find() পদ্ধতি -
এর সাহায্যে একটি সংগ্রহ থেকে সমস্ত নথি প্রদর্শন করুন> 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 ":সত্য... }... },... { "$unwind":"$details1" },... { "$unwind":"$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 .aggregate(out)এটি নিম্নলিখিত আউটপুট −
তৈরি করবে{ "details2" :[ { "isActive" :true, "Name" :"Mike" } ], "details1" :[ { "isActive" :true, "SubjectName" :"MySQL" } ], "Id " :"101" }