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

MongoDB-এ ID লিস্ট দিয়ে ডকুমেন্ট খুঁজে বের করা ($in অপারেটর)


$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) বা 임시 কালেকশন ব্যবহার করা ভালো।


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

  2. MongoDB-এ ন্যাচারেল অর্ডার (Natural Order) দিয়ে সর্ট করা ($natural)

  3. C#-এ লিস্টের সাইজ (Capacity vs Count) বের করা

  4. পাইথনে লিস্টের মাধ্যমে কীভাবে ইটারেট করবেন?