$in অপারেটর ব্যবহার করে একাধিক ID-এ ম্যাচ করা
MongoDB-এ একটি ID অ্যারে দিয়ে একসাথে একাধিক ডকুমেন্ট ফেচ করতে $in অপারেটর ব্যবহার করা হয়।
সিনট্যাক্স
var listOfIds = ['id1', 'id2', ...];
var documentIds = listOfIds.map(function(myId) { return ObjectId(myId); });
db.collection.find({ _id: { $in: documentIds } }).pretty();
উদাহরণ
> db.findListOfIdsDemo.insertOne({"StudentName":"Carol","StudentAge":21});
> db.findListOfIdsDemo.insertOne({"StudentName":"Bob","StudentAge":25});
> db.findListOfIdsDemo.insertOne({"StudentName":"David","StudentAge":22});
> db.findListOfIdsDemo.insertOne({"StudentName":"John","StudentAge":20});
> db.findListOfIdsDemo.insertOne({"StudentName":"Mike","StudentAge":23});
নির্দিষ্ট ID গুলো খুঁজে বের করা
> var listOfIds = ['5c8ecae42f684a30fbdfd576', '5c8ecaf82f684a30fbdfd578'];
> var documentIds = listOfIds.map(function(myId) { return ObjectId(myId); });
> db.findListOfIdsDemo.find({ _id: { $in: documentIds } }).pretty();
ফলাফল:
{
"_id" : ObjectId("5c8ecae42f684a30fbdfd576"), "StudentName" : "Bob", "StudentAge" : 25
}
{
"_id" : ObjectId("5c8ecaf82f684a30fbdfd578"), "StudentName" : "John", "StudentAge" : 20
}
টিপস: $in এর ইনপুট অ্যারে বড় হলে (১০০০+), পারফরম্যান্স কমে যেতে পারে। সেক্ষেত্রে চাংকিং (chunking) বা 임시 কালেকশন ব্যবহার করা ভালো।