MongoDB-এ $in অপারেটর: একাধিক মান মিলিয়ে ডকুমেন্ট বের করা
$in অপারেটর দিয়ে কোনো ফিল্ডের মান যদি দেওয়া অ্যারেতে যেকোনো একটি সাথে মিলে, তবে সেই ডকুমেন্ট রিটার্ন হয়। এটি একাধিক $or 쓰는 것보다 পঠনীয় এবং দ্রুত।
উদাহরণ: ডেটা ইনসার্ট
> db.demo161.insertOne({"ClientId":101,"ClientName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3577cafdf09dd6d0853a09") }
> db.demo161.insertOne({"ClientId":102,"ClientName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3577d0fdf09dd6d0853a0a") }
> db.demo161.insertOne({"ClientId":103,"ClientName":"David","ClientAge":35});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3577dffdf09dd6d0853a0b") }
> db.demo161.insertOne({"ClientId":104,"ClientName":"Carol","ClientAge":31});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3577eefdf09dd6d0853a0c") }
সব ডকুমেন্ট দেখানো
> db.demo161.find();
আউটপুট:
{ "_id" : ObjectId("5e3577cafdf09dd6d0853a09"), "ClientId" : 101, "ClientName" : "Chris" }
{ "_id" : ObjectId("5e3577d0fdf09dd6d0853a0a"), "ClientId" : 102, "ClientName" : "David" }
{ "_id" : ObjectId("5e3577dffdf09dd6d0853a0b"), "ClientId" : 103, "ClientName" : "David", "ClientAge" : 35 }
{ "_id" : ObjectId("5e3577eefdf09dd6d0853a0c"), "ClientId" : 104, "ClientName" : "Carol", "ClientAge" : 31 }
$in কোয়ারি (ClientId 101, 103, 104 মিলা ডকুমেন্ট)
> db.demo161.find({ClientId:{$in:[101,103,104]}});
আউটপুট:
{ "_id" : ObjectId("5e3577cafdf09dd6d0853a09"), "ClientId" : 101, "ClientName" : "Chris" }
{ "_id" : ObjectId("5e3577dffdf09dd6d0853a0b"), "ClientId" : 103, "ClientName" : "David", "ClientAge" : 35 }
{ "_id" : ObjectId("5e3577eefdf09dd6d0853a0c"), "ClientId" : 104, "ClientName" : "Carol", "ClientAge" : 31 }
ব্যাখ্যা
{ClientId:{$in:[101,103,104]}}— ClientId যেকোনো ১০১, ১০৩, বা ১০৪ হলে মিলবে।- ClientId 102 (David) ফলাফলে নেই।
$inঅ্যারে, স্ট্রিং, নাম্বার সব টাইপে কাজ করে।- ইন্ডেক্স থাকলে খুব দ্রুত চলে (IXSCAN)।
বিকল্প: $nin — নট-ইন (দেওয়া মানগুলোর বাহিরের ডকুমেন্ট)।