MongoDB-এ কন্ডিশনাল ফিল্ড সিলেকশন জন্য $ifNull অপারেটর ব্যবহার করুন। এটি প্রথম এক্সপ্রেশন null বা missing হলে দ্বিতীয়টি রিটার্ন করে।
উদাহরণ
বিভিন্ন কেসের ডকুমেন্ট তৈরি করুন:
> db.querySelectDemo.insertOne({"Value1":10,"Value2":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefc0ceef71edecf6a1f6b6") }
> db.querySelectDemo.insertOne({"Value1":null,"Value2":30});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefc0d7ef71edecf6a1f6b7") }
> db.querySelectDemo.insertOne({"Value1":60,"Value2":40});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefc0e2ef71edecf6a1f6b8") }
সকল ডকুমেন্ট দেখুন:
> db.querySelectDemo.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5cefc0ceef71edecf6a1f6b6"), "Value1" : 10, "Value2" : null }
{ "_id" : ObjectId("5cefc0d7ef71edecf6a1f6b7"), "Value1" : null, "Value2" : 30 }
{ "_id" : ObjectId("5cefc0e2ef71edecf6a1f6b8"), "Value1" : 60, "Value2" : 40 }
$ifNull ব্যবহার করে Value1 null হলে Value2 বেছে নেওয়া
> db.querySelectDemo.aggregate([
{
$project: {
"Value1": { "$ifNull": [ "$Value1", "$Value2" ] }
}
}
]);
আউটপুট:
{ "_id" : ObjectId("5cefc0ceef71edecf6a1f6b6"), "Value1" : 10 }
{ "_id" : ObjectId("5cefc0d7ef71edecf6a1f6b7"), "Value1" : 30 }
{ "_id" : ObjectId("5cefc0e2ef71edecf6a1f6b8"), "Value1" : 60 }
ব্যাখ্যা:
- ১ম ডকুমেন্ট:
Value1= ১০ (null নয়) → ১০ রিটার্ন। - ২য় ডকুমেন্ট:
Value1= null →Value2= ৩০ রিটার্ন। - ৩য় ডকুমেন্ট:
Value1= ৬০ (null নয়) → ৬০ রিটার্ন।
ব্যাবহার: ফলব্যাক (fallback) মান সেট করার জন্য আদর্শ, যেমন: ডিফল্ট ইমেজ, ডিফল্ট ক্যাটাগরি ইত্যাদি।