MongoDB-এ find() মেথডে একাধিক শর্তে যেকোনো একটি পূরণ হলে ডকুমেন্ট ফেচ করতে $or অপারেটর ব্যবহার করা হয়।
কলেকশন এবং ডকুমেন্ট তৈরি
> db.demo78.insertOne({"Name1":"Chris","Name2":"Mike"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bd99c71bf0181ecc4228f") }
> db.demo78.insertOne({"Name1":"Bob","Name2":"Carol"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bd9ac71bf0181ecc42290") }
> db.demo78.insertOne({"Name1":"David","Name2":"Sam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bd9b671bf0181ecc42291") }
> db.demo78.insertOne({"Name1":"Jace","Name2":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bd9bf71bf0181ecc42292") }
সব ডকুমেন্ট দেখানো
> db.demo78.find();
আউটপুট:
{ "_id" : ObjectId("5e2bd99c71bf0181ecc4228f"), "Name1" : "Chris", "Name2" : "Mike" }
{ "_id" : ObjectId("5e2bd9ac71bf0181ecc42290"), "Name1" : "Bob", "Name2" : "Carol" }
{ "_id" : ObjectId("5e2bd9b671bf0181ecc42291"), "Name1" : "David", "Name2" : "Sam" }
{ "_id" : ObjectId("5e2bd9bf71bf0181ecc42292"), "Name1" : "Jace", "Name2" : "John" }
OR অপারেটর ব্যবহার করে কোয়ারী
$or অপারেটরে দুটি শর্ত দেওয়া হয়েছে: Name1: "Bob" অথবা Name2: "John":
> db.demo78.find({$or: [{"Name1": "Bob"}, {Name2: "John"}] });
ফলাফল
{ "_id" : ObjectId("5e2bd9ac71bf0181ecc42290"), "Name1" : "Bob", "Name2" : "Carol" }
{ "_id" : ObjectId("5e2bd9bf71bf0181ecc42292"), "Name1" : "Jace", "Name2" : "John" }
ব্যাখ্যা:
- প্রথম ডকুমেন্ট:
Name1"Bob" → মেলেছে - চতুর্থ ডকুমেন্ট:
Name2"John" → মেলেছে - অন্যান্য দুটি: কোনো শর্ত মেলেনি → বাদ পড়ে গেছে
অতিরিক্ত উদাহরণ: তিনটি বা ততোধিক শর্তের জন্য: {$or: [{field1: val1}, {field2: val2}, {field3: val3}]}
পারফরম্যান্স টিপস: $or কোয়ারীর প্রতিটি শর্তের জন্য আলাদা ইনডেক্স ব্যবহার করতে পারে। কমপাউন্ড ইনডেক্সের চেয়ে কিছুটা ধীর হতে পারে।