MongoDB-এ $or অপারেটর ব্যবহার করে একাধিক ফিল্ডে ফিল্টার লাগিয়ে ডকুমেন্ট খুঁজে বের করা যায়।
নমুনা ডেটা তৈরি করা
findDocumentWithFilterDemo কালেকশনে চারটি ডকুমেন্ট ইনসার্ট করি।
> db.findDocumentWithFilterDemo.insertOne({"ClientName":"Robert","IsMarried":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd4fd1e2cba06f46efe9ef1") }
> db.findDocumentWithFilterDemo.insertOne({"ClientName":"Chris","IsMarried":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd4fd322cba06f46efe9ef2") }
> db.findDocumentWithFilterDemo.insertOne({"ClientName":"David","IsMarried":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd4fd3b2cba06f46efe9ef3") }
> db.findDocumentWithFilterDemo.insertOne({"ClientName":"Carol","IsMarried":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd4fd452cba06f46efe9ef4") }
সকল ডকুমেন্ট দেখানো
> db.findDocumentWithFilterDemo.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5cd4fd1e2cba06f46efe9ef1"), "ClientName" : "Robert", "IsMarried" : false }
{ "_id" : ObjectId("5cd4fd322cba06f46efe9ef2"), "ClientName" : "Chris", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd3b2cba06f46efe9ef3"), "ClientName" : "David", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd452cba06f46efe9ef4"), "ClientName" : "Carol", "IsMarried" : true }
$or অপারেটর দিয়ে ফিল্টার লাগানো
যেসব ডকুমেন্টে ClientName "Robert" নয় অথবা IsMarried false নয় — এমন ডকুমেন্ট খুঁজতে:
> db.findDocumentWithFilterDemo.find({
$or: [
{ "ClientName": { $ne: "Robert" } },
{ "IsMarried": { $ne: false } }
]
});
আউটপুট:
{ "_id" : ObjectId("5cd4fd322cba06f46efe9ef2"), "ClientName" : "Chris", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd3b2cba06f46efe9ef3"), "ClientName" : "David", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd452cba06f46efe9ef4"), "ClientName" : "Carol", "IsMarried" : true }
ব্যাখ্যা: Robert এবং IsMarried:false যেনেই আছে, সেটি বাদ পড়েছে। বাকি তিনটি যেকোনো একটি কন্ডিশন মেনে।