MongoDB-তে একই অ্যারে ফিল্ডের ভিন্ন ভিন্ন এলিমেন্টে ভিন্ন ভিন্ন শর্ত মিলাতে $and সাথে একাধিক $elemMatch ব্যবহার করা হয়। প্রতিটি $elemMatch আলাদা এলিমেন্টে মিলাতে পারে।
উদাহরণ: ডিটেইলস অ্যারে (Name, Value)
> db.demo592.insertOne({ "id": 101, "details": [ { "Name": "Chris", "Value": "200" }, { "Name": "David", "Value": "800" } ] });
> db.demo592.insertOne({ "id": 102, "details": [ { "Name": "Chris", "Value": "500" }, { "Name": "David", "Value": "900" } ] });
কোয়েরি: Chris-এর Value >= 500 AND David-এর Value >= 600
> db.demo592.find({
$and: [
{ "details": { $elemMatch: { "Name": "Chris", "Value": { $gte: "500" } } } },
{ "details": { $elemMatch: { "Name": "David", "Value": { $gte: "600" } } } }
]
});
আউটপুট: শুধু id: 102 वाला ডকুমেন্ট (Chris=500, David=900 - উভয় শর্ত পূরণ)।
গুরুত্বপূর্ণ পার্থক্য:
- একটি $elemMatch-এ একাধিক ফিল্ড: একই এলিমেন্টে সব শর্ত পূরণ করতে হয়
- $and-এ একাধিক $elemMatch: ভিন্ন ভিন্ন এলিমেন্টে ভিন্ন শর্ত পূরণ করতে পারে
উপরের উদাহরণে Chris এবং David আলাদা এলিমেন্ট, তাই $and + দুটি $elemMatch প্রয়োজন।