MongoDB-এ $all অপারেটর ব্যবহার করে যেসব ডকুমেন্টের অ্যারেতে নির্দিষ্ট সকল মান উপস্থিত আছে (অর্ডের নির্বিশেষে) সেগুলো খুঁজে বের করা যায়।
নমুনা ডেটা তৈরি করা
findDocumentExactlySameInArrayDemo কালেকশনে চারটি ডকুমেন্ট ইনসার্ট করি।
> db.findDocumentExactlySameInArrayDemo.insertOne({"TechnicalSubjects":["C++","Java","MongoDB"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69a5f57806ebf1256f12e") }
> db.findDocumentExactlySameInArrayDemo.insertOne({"TechnicalSubjects":["MySQL","Java","MongoDB"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69ac057806ebf1256f12f") }
> db.findDocumentExactlySameInArrayDemo.insertOne({"TechnicalSubjects":["C#","Python","MongoDB"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69ad457806ebf1256f130") }
> db.findDocumentExactlySameInArrayDemo.insertOne({"TechnicalSubjects":["MySQL","C","MongoDB"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69adf57806ebf1256f131") }
সকল ডকুমেন্ট দেখানো
> db.findDocumentExactlySameInArrayDemo.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5cd69a5f57806ebf1256f12e"), "TechnicalSubjects" : [ "C++", "Java", "MongoDB" ] }
{ "_id" : ObjectId("5cd69ac057806ebf1256f12f"), "TechnicalSubjects" : [ "MySQL", "Java", "MongoDB" ] }
{ "_id" : ObjectId("5cd69ad457806ebf1256f130"), "TechnicalSubjects" : [ "C#", "Python", "MongoDB" ] }
{ "_id" : ObjectId("5cd69adf57806ebf1256f131"), "TechnicalSubjects" : [ "MySQL", "C", "MongoDB" ] }
$all দিয়ে সঠিক ম্যাচ খুঁজা
"MySQL", "Java", "MongoDB" — এই তিনটি সবই আছে এমন ডকুমেন্ট:
> db.findDocumentExactlySameInArrayDemo.find({ "TechnicalSubjects": { "$all": ["MySQL","Java","MongoDB"] } });
আউটপুট:
{ "_id" : ObjectId("5cd69ac057806ebf1256f12f"), "TechnicalSubjects" : [ "MySQL", "Java", "MongoDB" ] }
ব্যাখ্যা: শুধু দ্বিতীয় ডকুমেন্টে তিনটি মানই আছে। $all অর্ডের apari না করে, শুধু সকল মান উপস্থিত থাকা চেক করে।