MongoDB-এ $cond এবং $anyElementTrue ব্যবহার করে ফিল্ড উপস্থিতি যাচাই
এই কাজের জন্য আপনি $cond এবং $anyElementTrue একসাথে ব্যবহার করতে পারেন। NULL মান (ফিল্ডের অনুপস্থিতি) FALSE আপনায়িত হবে। একইভাবে, একটি খালি অ্যারেটেও $anyElementTrue-এর সাথে FALSE ফেরত দেয়।
নমুনা সংগ্রহ তৈরি করা
> db.presenceDemo.insertOne({"StudentName":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06f70c25ddae1f53b621f3") }
> db.presenceDemo.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06f71425ddae1f53b621f4") }
> db.presenceDemo.insertOne({"StudentName":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06f71825ddae1f53b621f5") }
> db.presenceDemo.insertOne({"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06f71e25ddae1f53b621f6") }
সব ডকুমেন্ট দেখানো
> db.presenceDemo.find();
আউটপুট:
{ "_id" : ObjectId("5e06f70c25ddae1f53b621f3"), "StudentName" : null }
{ "_id" : ObjectId("5e06f71425ddae1f53b621f4"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5e06f71825ddae1f53b621f5"), "StudentName" : null }
{ "_id" : ObjectId("5e06f71e25ddae1f53b621f6"), "StudentName" : "David" }
ফিল্ড উপস্থিতির ভিত্তিতে $cond কোয়েরি
> db.presenceDemo.aggregate([
{ "$project": {
"MyValue": {
"$cond": [
{ "$anyElementTrue": [ ["$StudentName"] ] },
1,
0
]
}
}}
]);
এই কোয়েরিটি ফলাফল দেবে:
{ "_id" : ObjectId("5e06f70c25ddae1f53b621f3"), "MyValue" : 0 }
{ "_id" : ObjectId("5e06f71425ddae1f53b621f4"), "MyValue" : 1 }
{ "_id" : ObjectId("5e06f71825ddae1f53b621f5"), "MyValue" : 0 }
{ "_id" : ObjectId("5e06f71e25ddae1f53b621f6"), "MyValue" : 1 }
ব্যাখ্যা: যেখানে StudentName ফিল্ডে মান রয়েছে (Chris, David), সেখানে MyValue 1, আর যেখানে null রয়েছে, সেখানে 0 দেখাচ্ছে।