MongoDB-এ $exists অপারেটর দিয়ে ফিল্ড বা নেস্টেড ফিল্ড আছে কিনা যাচাই করা
MongoDB-এ একটি ফিল্ড বা নেস্টেড ফিল্ড ডকুমেন্টে আছে কিনা চেক করার জন্য $exists অপারেটর ব্যবহার করা হয়। এটি বুলিয়ান মান (true/false) গ্রহণ করে।
১. কালেকশন ও নমুনা ডেটা তৈরি (একটিতে Name আছে, অন্যটিতে নেই)
> db.demo322.insertOne({
'id': 1001,
'details': [{'Score': 10000, Name: "Bob"}, {'Score': 98000, Name: "Sam"}]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5113e2f8647eb59e56206c") }
> db.demo322.insertOne({
'id': 10002,
'details': [{'Score': 9000}, {'Score': 91000}]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5113faf8647eb59e56206d") }
২. সব ডকুমেন্ট দেখানো
> db.demo322.find();
আউটপুট:
{ "_id" : ObjectId("5e5113e2f8647eb59e56206c"), "id" : 1001, "details" : [ { "Score" : 10000, "Name" : "Bob" }, { "Score" : 98000, "Name" : "Sam" } ] }
{ "_id" : ObjectId("5e5113faf8647eb59e56206d"), "id" : 10002, "details" : [ { "Score" : 9000 }, { "Score" : 91000 } ] }
দ্বিতীয় ডকুমেন্টের details অ্যারে-র এলিমেন্টগুলোর Name ফিল্ড নেই।
৩. $exists দিয়ে চেক করা (details.Name ফিল্ড আছে কিনা)
> db.demo322.find({"details.Name": { $exists: true }}).count() > 0;
৪. ফলাফল
True
ব্যাখ্যা:
{$exists: true}- ফিল্ডটি ডকুমেন্টে উপস্থিত থাকতে হবে (মান null হলে ও चले, ফিল্ড থাকলেই মনোয়)।.count() > 0- কয়েকটি ডকুমেন্ট আছে কিনা বুলিয়ান রিটার্ন করে।- প্রথম ডকুমেন্টে
Nameফিল্ড আছে, তাইtrueফেরত দিয়েছে।
বিপরীত: {$exists: false} দিয়ে ফিল্ড নেই এমন ডকুমেন্ট খুঁজে বের করা যায়।