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

MongoDB-এ একই ফিল্ডে একাধিক OR শর্ত ব্যবহার করা

MongoDB-এ একই ফিল্ডে একাধিক OR শর্ত প্রয়োগ করতে $or অপারেটর একটিবার ব্যবহার করে একাধিক শর্ত সাঙ্ঘাতিক (array) হিসেবে দেওয়া হয়।

উদাহরণ: কালেকশন ও ডেটা তৈরি

> db.demo551.insertOne({"Name":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e36d39e5f92834d7f05e5") }
> db.demo551.insertOne({"Name":"Chris Brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e36d89e5f92834d7f05e6") }
> db.demo551.insertOne({"Name":"John Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e36de9e5f92834d7f05e7") }
> db.demo551.insertOne({"Name":"John Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e36e59e5f92834d7f05e8") }
> db.demo551.insertOne({"Name":"Carol"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e36ec9e5f92834d7f05e9") }

সব ডকুমেন্ট দেখানো

> db.demo551.find();

আউটপুট:

{ "_id" : ObjectId("5e8e36d39e5f92834d7f05e5"), "Name" : "John" }
{ "_id" : ObjectId("5e8e36d89e5f92834d7f05e6"), "Name" : "Chris Brown" }
{ "_id" : ObjectId("5e8e36de9e5f92834d7f05e7"), "Name" : "John Doe" }
{ "_id" : ObjectId("5e8e36e59e5f92834d7f05e8"), "Name" : "John Smith" }
{ "_id" : ObjectId("5e8e36ec9e5f92834d7f05e9"), "Name" : "Carol" }

OR শর্ত ব্যবহার করে "Carol" বা "John" খোঁজা

> db.demo551.find({
    $or: [
      { "Name": { $eq: "Carol" } },
      { "Name": { $eq: "John" } }
    ]
});

কোয়েরির ব্যাখ্যা

  • $or অপারেটর একটি অ্যারে নেয় যেখানে প্রতিটি এলিমেন্ট একটি স্বতন্ত্র কুয়েরি শর্ত।
  • $eq স্পষ্ট সমতা (equality) চেক করে। { Name: "John" } লিখলেও হয়, কিন্তু $eq স্পষ্টতা বাড়ায়।
  • এই কোয়েরি "Carol" বা "John" (এক্সাক্ট ম্যাচ) 이름이 থাকা ডকুমেন্ট বের করবে। "John Doe" বা "John Smith" ম্যাচ করবে না কারণ তারা "John" এক্সাক্টলি নয়।

আউটপুট

{ "_id" : ObjectId("5e8e36d39e5f92834d7f05e5"), "Name" : "John" }
{ "_id" : ObjectId("5e8e36ec9e5f92834d7f05e9"), "Name" : "Carol" }

অতিরিক্ত টিপস: একই ফিল্ডে একাধিক মান ম্যাচের জন্য $in ব্যবহার করুন

যদি শুধু একই ফিল্ডে একাধিক নির্দিষ্ট মান যেকোনো একটি ম্যাচ করতে হয়, তবে $in আরও সংক্ষিপ্ত ও দ্রুত:

> db.demo551.find({ Name: { $in: ["Carol", "John"] } });

এটি একই ফলাফল দেবে কিন্তু পড়া ও লিখা সহজ। $or ব্যবহার করুন যখন শর্তগুলো ভিন্ন ফিল্ডে বা জটিল এক্সপ্রেশন হয়।

মূল পয়েন্টসমূহ

  • $or একাধিক স্বতন্ত্র শর্ত যৌথ করতে ব্যবহৃত হয়।
  • একই ফিল্ডে সিম্পল মান ম্যাচের জন্য $in প্রিয়।
  • $or-এর প্রতিটি শর্ত আলাদা ইন্ডেক্স ব্যবহার করতে পারে (MongoDB 2.6+), তাই পারফরম্যান্স ভালো থাকে।
  1. MongoDB-এ bulkWrite() ব্যবহার করে একাধিক ডকুমেন্ট যোগ করা

  2. MongoDB-এ একাধিক কন্ডিশন সেট করে রেঞ্জ অনুযায়ী মান বের করা

  3. MongoDB-এ একাধিক ডকুমেন্ট মার্জ করার পদ্ধতি

  4. MongoDB-তে $or অপারেটর ব্যবহার করে একাধিক শর্তে ডকুমেন্ট বের করা