বুলিয়ান ফিল্ড এবং নেস্টেড ফিল্ডের অস্তিত্ব চেক করে কুয়েরি
MongoDB-এ true/false মান বা কোনো ফিল্ড আছে কিনা ($exists) চেক করে ডকুমেন্ট ফিল্টার করা যায়। নেস্টেড অ্যারে অবজেক্টের ফিল্ড চেক করতে ডট নোটেশন ব্যবহার করতে হয়।
উদাহরণ: জটিল স্ট্রাকচার সহ ডকুমেন্ট তৈরি
> db.demo367.insertOne({ "Id" : "102", "details" : [ { "Name" : "David"}, { "Age" : 23, "CountryName" : "UK"} ], "isMarried" : false });
{ "acknowledged" : true, "insertedId" : ObjectId("5e57e0b62ae06a1609a00ae8") }
> db.demo367.insertOne({ "Id" : "101", "details" : [ { "Name" : "Chris", "Subject" : [ "MySQL" ] }, { "Age" : 21, "CountryName" : "US"} ], "isMarried" : true });
{ "acknowledged" : true, "insertedId" : ObjectId("5e57e0be2ae06a1609a00ae9") }
সমস্ত ডকুমেন্ট
> db.demo367.find();
{ "_id" : ObjectId("5e57e0b62ae06a1609a00ae8"), "Id" : "102", "details" : [ { "Name" : "David" }, { "Age" : 23, "CountryName" : "UK" } ], "isMarried" : false }
{ "_id" : ObjectId("5e57e0be2ae06a1609a00ae9"), "Id" : "101", "details" : [ { "Name" : "Chris", "Subject" : [ "MySQL" ] }, { "Age" : 21, "CountryName" : "US" } ], "isMarried" : true }
Subject ফিল্ড নেই এমন ডকুমেন্ট খুঁজে বের করা
> db.demo367.find({"details.Subject": { $exists: false}});
ফলাফল
{ "_id" : ObjectId("5e57e0b62ae06a1609a00ae8"), "Id" : "102", "details" : [ { "Name" : "David" }, { "Age" : 23, "CountryName" : "UK" } ], "isMarried" : false }
ব্যাখ্যা
details.Subject: ডট নোটেশন ব্যবহার করে অ্যারেতে থাকা অবজেক্টেরSubjectফিল্ড এক্সেস করা।$exists: false: ফিল্ডটি ডকুমেন্টে অনুপস্থিত থাকা ডকুমেন্ট সিলেক্ট করে।isMarried: true/falseদিয়ে সরাসরি কুয়েরি করা যায়:db.demo367.find({isMarried: true})।
টিপ: বুলিয়ান ফিল্ডে ইনডেক্স দিলে কুয়েরি পারফরম্যান্স বাড়ে।