MongoDB-এ $exists ফিল্ড আছে কিনা চেক করে, আর $ne (not equal) নির্দিষ্ট মান নয় কিনা চেক করে। দুটো মিলিয়ে ফিল্ড এক্সিস্ট করে এবং খালি/নাল নয় এমন ডকুমেন্ট খুঁজা যায়।
নমুনা ডেটা তৈরি করা
existsDemo কালেকশনে চারটি ডকুমেন্ট ইনসার্ট করি যাতে Name এবং Age থাকে।
> db.existsDemo.insertOne({"Name":"Chris","Age":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c3916d78f205348bc650") }
> db.existsDemo.insertOne({"Name":"","Age":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c39a6d78f205348bc651") }
> db.existsDemo.insertOne({"Name":null,"Age":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c3a66d78f205348bc652") }
> db.existsDemo.insertOne({"Age":23});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd7c3c36d78f205348bc653") }
সকল ডকুমেন্ট দেখানো
> db.existsDemo.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5cd7c3916d78f205348bc650"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5cd7c39a6d78f205348bc651"), "Name" : "", "Age" : null }
{ "_id" : ObjectId("5cd7c3a66d78f205348bc652"), "Name" : null, "Age" : 24 }
{ "_id" : ObjectId("5cd7c3c36d78f205348bc653"), "Age" : 23 }
$exists এবং $ne একসাথে ব্যবহার করা
Name ফিল্ড এক্সিস্ট করে এবং খালি স্ট্রিং নয় এমন ডকুমেন্ট:
> db.existsDemo.find({ "$and": [ { "Name": { "$exists": true } }, { "Name": { "$ne": "" } } ] });
আউটপুট:
{ "_id" : ObjectId("5cd7c3916d78f205348bc650"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5cd7c3a66d78f205348bc652"), "Name" : null, "Age" : 24 }
ব্যাখ্যা:
- ১ম ডকুমেন্ট: Name আছে এবং "Chris" (খালি নয়) — মেলেছে
- ২য় ডকুমেন্ট: Name আছে কিন্তু খালি স্ট্রিং — মেলেনি ($ne: "" ফেলেছে)
- ৩য় ডকুমেন্ট: Name আছে কিন্তু null — মেলেছে (null ≠ "")
- ৪থ ডকুমেন্ট: Name ফিল্ডই নেই — মেলেনি ($exists: true ফেলেছে)
টিপস: শুধু non-null এবং non-empty চাইলে { Name: { $exists: true, $ne: null, $ne: "" } } ব্যবহার করুন।