ভূমিকা
MongoDB-এ কোনো অ্যারে ফিল্ডে শুধু একটি নির্দিষ্ট ভ্যালু আছে কিনা (অন্য কোনো ভ্যালু নেই) তা চেক করতে সরাসরি অ্যারে ভ্যালু দিয়ে কোয়েরি করা যায়।
নমুনা ডেটা তৈরি
arrayContainOnlySpecificFieldDemo কালেকশনে দুটি ডকুমেন্ট ইনসার্ট করা হয়েছে। প্রথমটিতে অ্যারেতে তিনটি সাবজেক্ট, দ্বিতীয়টিতে শুধু "MongoDB" রয়েছে।
> db.arrayContainOnlySpecificFieldDemo.insertOne( { "StudentName":"John", "StudentAge":21, "StudentTechnicalSubject":["C","Java","MongoDB"] } );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc4921dac184d684e3fa26a") }
> db.arrayContainOnlySpecificFieldDemo.insertOne( { "StudentName":"Carol", "StudentAge":23, "StudentTechnicalSubject":["MongoDB"] } );
{ "acknowledged" : true, "insertedId" : ObjectId("5cc49237ac184d684e3fa26b") }
সকল ডকুমেন্ট প্রদর্শন
> db.arrayContainOnlySpecificFieldDemo.find().pretty();
আউটপুট
শুধু "MongoDB" থাকা ডকুমেন্ট বের করা
অ্যারের সঠিক ম্যাচ করার জন্য পুরো অ্যারে ভ্যালু
["MongoDB"]দিয়ে কোয়েরি করা হয়েছে।> db.arrayContainOnlySpecificFieldDemo.find({"StudentTechnicalSubject":[ "MongoDB"]}).pretty();ফলাফল
মনে রাখবেন: এই কোয়েরি শুধু তখনই কাজ করবে যখন অ্যারেতে শুধু সেই এলিমেন্টটি এককভাবে থাকে। যদি অর্ডার বা অতিরিক্ত এলিমেন্ট থাকে তবে মিলে যাবে না। ফ্লেক্সিবল ম্যাচের জন্য
$allবা$elemMatchব্যবহার করুন।