MongoDB-এ $or অপারেটর ব্যবহার করে একাধিক শর্তে যেকোনো একটি পূরণকারী ডকুমেন্ট খুঁজে বের করা
MongoDB-এ একাধিক শর্ত দিয়ে কোয়েরি করার সময়, যদি শর্তগুলোর যেকোনো একটি পূরণ হলে ডকুমেন্ট ফেরত দিতে হয়, তবে $or অপারেটর ব্যবহার করা হয়। এটি লজিক্যাল OR অপারেশন করে।
১. কালেকশন ও ক্লায়েন্ট ডেটা তৈরি
> db.demo362.insertOne({"ClientName":"John","ClientProject":"School Management System"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a77454a481fef8ec7a1c") }
> db.demo362.insertOne({"ClientName":"David","ClientProject":"Library Management System"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a78454a481fef8ec7a1d") }
> db.demo362.insertOne({"ClientName":"Mike","ClientProject":"Event Tracker"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a7a054a481fef8ec7a1e") }
> db.demo362.insertOne({"ClientName":"Carol","ClientProject":"Hospital Management System"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a7b754a481fef8ec7a1f") }
২. সব ডকুমেন্ট দেখানো
> db.demo362.find();
আউটপুট:
{ "_id" : ObjectId("5e56a77454a481fef8ec7a1c"), "ClientName" : "John", "ClientProject" : "School Management System" }
{ "_id" : ObjectId("5e56a78454a481fef8ec7a1d"), "ClientName" : "David", "ClientProject" : "Library Management System" }
{ "_id" : ObjectId("5e56a7a054a481fef8ec7a1e"), "ClientName" : "Mike", "ClientProject" : "Event Tracker" }
{ "_id" : ObjectId("5e56a7b754a481fef8ec7a1f"), "ClientName" : "Carol", "ClientProject" : "Hospital Management System" }
৩. $or কোয়েরি: ClientName "John" HOBO ClientProject "Event Tracker"
> db.demo362.find({$or: [{"ClientName":"John"}, {"ClientProject": "Event Tracker"}]})
৪. ফলাফল
{ "_id" : ObjectId("5e56a77454a481fef8ec7a1c"), "ClientName" : "John", "ClientProject" : "School Management System" }
{ "_id" : ObjectId("5e56a7a054a481fef8ec7a1e"), "ClientName" : "Mike", "ClientProject" : "Event Tracker" }
ব্যাখ্যা:
- প্রথম ডকুমেন্ট: ClientName "John" মিলে (Project মিললেও হবে, না মিললেও হবে)।
- তৃতীয় ডকুমেন্ট: ClientProject "Event Tracker" মিলে (Name "Mike" হলেও চলে)।
- দ্বিতীয় এবং চতুর্থ ডকুমেন্ট: দুটি শর্তই মেলেনি।
নোট: $or-এ প্রতিটি শর্ত আলাদা অবজেক্ট হিসেবে অ্যারে-তে থাকে। ইন্ডেক্স ব্যবহার অপ্টিমাইজেশনের জন্য প্রতিটি শর্তে ইন্ডেক্স থাকা ভালো।