MongoDB-এ অ্যারে অবজেক্টের মধ্যে একসাথে দুটি নির্দিষ্ট আইডি (যেমন ১০২ এবং ১০৩) থাকা ডকুমেন্ট খোঁজার জন্য $and অপারেটর ব্যবহার করা হয়।
নমুনা ডেটা তৈরি (PlayerDetails অ্যারে)
> db.twoSpecificIdsDemo.insertOne({
PlayerId: 1,
"PlayerDetails": [
{"id": 100, "PlayerName": "Chris"},
{"id": 101, "PlayerName": "Sam"},
{"id": 102, "PlayerName": "Robert"},
{"id": 103, "PlayerName": "Carol"}
]
});
{ "acknowledged": true, "insertedId": ObjectId("5cd3e130edc6604c74817ce4") }
> db.twoSpecificIdsDemo.insertOne({
PlayerId: 1,
"PlayerDetails": [
{"id": 104, "PlayerName": "Mike"},
{"id": 105, "PlayerName": "Bob"},
{"id": 102, "PlayerName": "Ramit"},
{"id": 106, "PlayerName": "David"}
]
});
{ "acknowledged": true, "insertedId": ObjectId("5cd3e167edc6604c74817ce5") }
সব ডকুমেন্ট দেখুন
> db.twoSpecificIdsDemo.find().pretty();আউটপুট:
{
"_id": ObjectId("5cd3e130edc6604c74817ce4"),
"PlayerId": 1,
"PlayerDetails": [
{"id": 100, "PlayerName": "Chris"},
{"id": 101, "PlayerName": "Sam"},
{"id": 102, "PlayerName": "Robert"},
{"id": 103, "PlayerName": "Carol"}
]
}
{
"_id": ObjectId("5cd3e167edc6604c74817ce5"),
"PlayerId": 1,
"PlayerDetails": [
{"id": 104, "PlayerName": "Mike"},
{"id": 105, "PlayerName": "Bob"},
{"id": 102, "PlayerName": "Ramit"},
{"id": 106, "PlayerName": "David"}
]
}
$and দিয়ে id 102 এবং 103 উভয়ই থাকা ডকুমেন্ট খোঁজা
> db.twoSpecificIdsDemo.find({
$and: [
{"PlayerDetails.id": 102},
{"PlayerDetails.id": 103}
]
}).pretty();
আউটপুট (শুধু প্রথম ডকুমেন্টে ১০২ এবং ১০৩ উভয় আছে):
{
"_id": ObjectId("5cd3e130edc6604c74817ce4"),
"PlayerId": 1,
"PlayerDetails": [
{"id": 100, "PlayerName": "Chris"},
{"id": 101, "PlayerName": "Sam"},
{"id": 102, "PlayerName": "Robert"},
{"id": 103, "PlayerName": "Carol"}
]
}
ব্যাখ্যা: ডট নোটেশন PlayerDetails.id দিয়ে অ্যারেতে যেকোনো এলিমেন্টে=id মэтচ করা হয়। $and দিয়ে দুটি শর্ত একসাথে মেটাতে হয়। দ্বিতীয় ডকুমেন্টে ১০৩ নেই, তাই বাদ পড়েছে।