এর জন্য $unwind এর সাথে aggregate() ব্যবহার করুন। আসুন আমরা নথি-
সহ একটি সংগ্রহ তৈরি করি> db.demo583.insert([ ... { ... "details1" : [ ... { ... "details2" : [ ... { ... "isMarried" : true, ... "Name" : "Chris" ... }, ... { ... "isMarried" : true, ... "Name" : "Bob" ... } ... ] ... }, ... { ... "details2" : [ ... { ... "isMarried" : false, ... "Name" : "Chris" ... }, ... { ... "isMarried" : true, ... "Name" : "Mike" ... } ... ] ... } ... ] ... } ... ]); BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 1, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] })
Find() পদ্ধতি -
এর সাহায্যে একটি সংগ্রহ থেকে সমস্ত নথি প্রদর্শন করুন> db.demo583.find();
এটি নিম্নলিখিত আউটপুট −
তৈরি করবে{ "_id" : ObjectId("5e91d3c4fd2d90c177b5bcc1"), "details1" : [ { "details2" : [ { "isMarried" : true, "Name" : "Chris" }, { "isMarried" : true, "Name" : "Bob" } ] }, { "details2" : [ { "isMarried" : false, "Name" : "Chris" }, { "isMarried" : true, "Name" : "Mike" } ] } ] }
সাব-ডকুমেন্ট −
দ্বারা সাব ডকুমেন্ট ফিল্টার করার জন্য নিম্নোক্ত ক্যোয়ারী> var q= [ ... { ... "$match": { ... "details1.details2.isMarried": true, ... "details1.details2.Name": "Chris" ... } ... }, ... { ... "$unwind": "$details1" ... }, ... { ... "$unwind": "$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" } } }