MongoDB-এ দুটি বুলিয়ান ফিল্ড থেকে যেকোনো একটি true হলে ডকুমেন্ট বের করতে $expr এবং $or অপারেটর ব্যবহার করুন।
উদাহরণ
দুটি বুলিয়ান ফিল্ড সহ ডকুমেন্ট তৈরি করুন:
> db.orTwoFieldsDemo.insertOne({"isLiveInUS": true, "isMarried": false});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfd86abf3115999ed5120d") }
> db.orTwoFieldsDemo.insertOne({"isLiveInUS": true, "isMarried": true});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfd876bf3115999ed5120e") }
> db.orTwoFieldsDemo.insertOne({"isLiveInUS": false, "isMarried": false});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfd87dbf3115999ed5120f") }
সকল ডকুমেন্ট দেখুন:
> db.orTwoFieldsDemo.find();
আউটপুট:
{ "_id" : ObjectId("5cdfd86abf3115999ed5120d"), "isLiveInUS" : true, "isMarried" : false }
{ "_id" : ObjectId("5cdfd876bf3115999ed5120e"), "isLiveInUS" : true, "isMarried" : true }
{ "_id" : ObjectId("5cdfd87dbf3115999ed5120f"), "isLiveInUS" : false, "isMarried" : false }
উভয় ফিল্ড FALSE নয় এমন ডকুমেন্ট বের করা (অর্থাৎ কমপক্ষে একটি TRUE)
> db.orTwoFieldsDemo.find({ $expr: { $or: [ "$isLiveInUS", "$isMarried" ] } });
আউটপুট:
{ "_id" : ObjectId("5cdfd86abf3115999ed5120d"), "isLiveInUS" : true, "isMarried" : false }
{ "_id" : ObjectId("5cdfd876bf3115999ed5120e"), "isLiveInUS" : true, "isMarried" : true }
ব্যাখ্যা:
$expr— এগ্রিগেশন এক্সপ্রেশন ক্যোয়ারিতে ব্যবহার করার অনুমতি দেয়।$or: ["$isLiveInUS", "$isMarried"]— ফিল্ড রেফারেন্স (ডলার সাইন সহ) ব্যবহার করে লজিক্যাল OR করা হয়েছে।- তৃতীয় ডকুমেন্টে দুটোই false, তাই বাদ পড়েছে।
বিকল্প (পুরানো ভার্সন): { $or: [ {isLiveInUS: true}, {isMarried: true} ] } — এটি ফিল্ড লেভেলে কাজ করে, এক্সপ্রেশন লেভেলে নয়।