কম্পিউটার টিউটোরিয়াল

MongoDB-এ find()-এ OR অপারেটর বাস্তবায়ন

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 কোয়ারীর প্রতিটি শর্তের জন্য আলাদা ইনডেক্স ব্যবহার করতে পারে। কমপাউন্ড ইনডেক্সের চেয়ে কিছুটা ধীর হতে পারে।

  1. MongoDB-এ MySQL UNION-এর মত দুই কলেকশন জয়েন করা

  2. MongoDB-এ অ্যারেতে $in অপারেটর ইমপ্লিমেন্ট করা

  3. MongoDB-এ সাব-ডকুমেন্টসে ফাইন্ড কোয়েরি চালানো

  4. MongoDB-তে নেস্টেড ডকুমেন্ট খোঁজা (Dot Notation)