MongoDB-এ কোনো ফিল্ড ডকুমেন্টে আছে কিনা চেক করতে $exists অপারেটর ব্যবহার করা হয়। { field: { $exists: false } }` দিয়ে সেটি ফিল্ড অনুপস্থিত ডকুমেন্টগুলো ফিল্টার করা যায়।
নমুনা কালেকশন তৈরি
> db.demo234.insertOne({ "FirstName": "Chris", "LastName": "Brown", "Age": 24 });
{ "acknowledged": true, "insertedId": ObjectId("5e418a50f4cebbeaebec5148") }
> db.demo234.insertOne({ "FirstName": "David", "LastName": "Miller" });
{ "acknowledged": true, "insertedId": ObjectId("5e418a5ff4cebbeaebec5149") }
> db.demo234.insertOne({ "FirstName": "John", "LastName": "Smith", Age: 34 });
{ "acknowledged": true, "insertedId": ObjectId("5e418a70f4cebbeaebec514a") }
সমস্ত ডকুমেন্ট দেখানো
> db.demo234.find();
আউটপুট:
{ "_id": ObjectId("5e418a50f4cebbeaebec5148"), "FirstName": "Chris", "LastName": "Brown", "Age": 24 }
{ "_id": ObjectId("5e418a5ff4cebbeaebec5149"), "FirstName": "David", "LastName": "Miller" }
{ "_id": ObjectId("5e418a70f4cebbeaebec514a"), "FirstName": "John", "LastName": "Smith", "Age": 34 }
Age ফিল্ড না থাকা ডকুমেন্ট খুঁজে বের করা
> var iterator = db.demo234.find({ "Age": { $exists: false } }, { "_id": 0 });
> iterator.forEach(function(d) { printjson(d); })
ফলাফল
{ "FirstName": "David", "LastName": "Miller" }
ব্যাখ্যা:
{ "Age": { $exists: false } }-Ageফিল্ড অনুপস্থিত ডকুমেন্ট ফিল্টার করে।{ "_id": 0 }- প্রজেকশনে_idবাদ দেয়।- দ্বিতীয় ডকুমেন্টে
Ageফিল্ড নেই, তাই সেটি ফলাফলে আসে।
সরল পদ্ধতি (শেলে)
db.demo234.find({ "Age": { $exists: false } }, { "_id": 0 }).pretty();
ফিল্ড আছে কিনা চেক (true)
db.demo234.find({ "Age": { $exists: true } });
এটি Age ফিল্ড উপস্থিত ডকুমেন্টগুলো রিটার্ন করবে (প্রথম এবং তৃতীয়)।
নাল ভ্যালু vs অনুপস্থিত ফিল্ড
{ Age: null } এবং ফিল্ড নেই - দুটি ভিন্ন। $exists: true নাল ভ্যালু ও ম্যাচ করবে, $exists: false শুধু ফিল্ড অনুপস্থিত ম্যাচ করবে।