এর জন্য, আপনি $elemMatch অপারেটর ব্যবহার করতে পারেন। $elemMatch অপারেটর এমন নথিগুলির সাথে মেলে যেগুলিতে অন্তত একটি উপাদান সহ একটি অ্যারে ক্ষেত্র রয়েছে যা সমস্ত নির্দিষ্ট প্রশ্নের মানদণ্ডের সাথে মেলে৷ আসুন প্রথমে নথি-
সহ একটি সংগ্রহ তৈরি করি> db.filterBySeveralElementsDemo.insertOne( "_id":100, "StudentDetails": [ { "StudentName": "John", "StudentCountryName": "US", }, { "StudentName": "Carol", "StudentCountryName": "UK" } ] } ); { "acknowledged" : true, "insertedId" : 100 } > db.filterBySeveralElementsDemo.insertOne( { "_id":101, "StudentDetails": [ { "StudentName": "Sam", "StudentCountryName": "AUS", }, { "StudentName": "Chris", "StudentCountryName": "US" } ] } ); { "acknowledged" : true, "insertedId" : 101 }
Find() পদ্ধতির সাহায্যে একটি সংগ্রহ থেকে সমস্ত নথি প্রদর্শন করার জন্য নিম্নলিখিত প্রশ্ন রয়েছে -
> db.filterBySeveralElementsDemo.find().pretty();
এটি নিম্নলিখিত আউটপুট −
তৈরি করবে{ "_id" : 100, "StudentDetails" : [ { "StudentName" : "John", "StudentCountryName" : "US" }, { "StudentName" : "Carol", "StudentCountryName" : "UK" } ] } { "_id" : 101, "StudentDetails" : [ { "StudentName" : "Sam", "StudentCountryName" : "AUS" }, { "StudentName" : "Chris", "StudentCountryName" : "US" } ] }
নিম্নলিখিত অ্যারে উপাদানগুলি দ্বারা ফিল্টার করার জন্য ক্যোয়ারী −
> db.filterBySeveralElementsDemo.find({ StudentDetails: { $elemMatch: { StudentName: 'Sam', StudentCountryName: 'AUS' }}}).pretty();
এটি নিম্নলিখিত আউটপুট −
তৈরি করবে{ "_id" : 101, "StudentDetails" : [ { "StudentName" : "Sam", "StudentCountryName" : "AUS" }, { "StudentName" : "Chris", "StudentCountryName" : "US" } ] }