MongoDB-এ সঠিক মিলান (Exact Match) কীভাবে করবেন
MongoDB-এ কোনো ফিল্ডের মান স্ট্রিং নাকি অ্যারে—দুইরূপে থাকতে পারে। সেক্ষেত্রে শুধুমাত্র স্ট্রিং মানযুক্ত ডকুমেন্টগুলো বের করতে হলে $exists এবং $and অপারেটর ব্যবহার করতে হয়।
উদাহরণ: কালেকশন তৈরি ও ডেটা ইনসার্ট
> db.demo290.insertOne({"ListOfName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4c0c9e5d93261e4bc9ea2d") }
> db.demo290.insertOne({"ListOfName":["Chris","David"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4c0cb05d93261e4bc9ea2e") }
সব ডকুমেন্ট দেখানো
> db.demo290.find();
আউটপুট:
{ "_id" : ObjectId("5e4c0c9e5d93261e4bc9ea2d"), "ListOfName" : "Chris" }
{ "_id" : ObjectId("5e4c0cb05d93261e4bc9ea2e"), "ListOfName" : [ "Chris", "David" ] }
সঠিক মিলানের কোয়ারি
শুধু স্ট্রিং হিসেবে "Chris" থাকা ডকুমেন্ট বের করতে:
> db.demo290.find({$and: [{'ListOfName.0': {$exists: false}}, {"ListOfName": 'Chris'}]});
আউটপুট:
{ "_id" : ObjectId("5e4c0c9e5d93261e4bc9ea2d"), "ListOfName" : "Chris" }
ব্যাখ্যা
{'ListOfName.0': {$exists: false}}— এই শর্তটি নিশ্চিত করে যেListOfNameএকটি অ্যারে নয় (অর্থাৎ ০ নম্বর ইন্ডেক্স আছে না)।{"ListOfName": 'Chris'}— এই শর্তটি মান "Chris" খুঁজে বের করে।$and— দুটি শর্ত একসাথে পূরণ করতে হয়।
এই পদ্ধতিতে আপনি মিশ্র ডেটা টাইপ থাকা ফিল্ড থেকে শুধু নির্দিষ্ট টাইপের মান বের করতে পারেন।