MongoDB-এ গভীর নেস্টেড অ্যারে বা অবজেক্টের ফিল্ডে কোয়েরি করতে ডট (.) নোটেশন ব্যবহার করে পূর্ণ পথ নির্দিষ্ট করা হয়।
নমুনা ডেটা তৈরি (নেস্টেড অ্যারে অবজেক্ট)
> db.nestedJSONArrayDemo.insertOne({
"ClientDetails": {
"ClientPersonalDetails": [
{ "CountryName": "US" },
{ "CountryName": "AUS" },
{ "ClientName": "Chris" },
{ "ClientName": "David" }
]
}
});
{ "acknowledged": true, "insertedId": ObjectId("5cd2cbb2b64f4b851c3a13bc") }
> db.nestedJSONArrayDemo.insertOne({
"ClientDetails": {
"ClientPersonalDetails": [
{ "CountryName": "Belgium" },
{ "CountryName": "Canada" },
{ "CountryName": "Egypt" }
]
}
});
{ "acknowledged": true, "insertedId": ObjectId("5cd2cc14b64f4b851c3a13bd") }
সব ডকুমেন্ট দেখুন
> db.nestedJSONArrayDemo.find().pretty();আউটপুট:
{
"_id": ObjectId("5cd2cbb2b64f4b851c3a13bc"),
"ClientDetails": {
"ClientPersonalDetails": [
{ "CountryName": "US" },
{ "CountryName": "AUS" },
{ "ClientName": "Chris" },
{ "ClientName": "David" }
]
}
}
{
"_id": ObjectId("5cd2cc14b64f4b851c3a13bd"),
"ClientDetails": {
"ClientPersonalDetails": [
{ "CountryName": "Belgium" },
{ "CountryName": "Canada" },
{ "CountryName": "Egypt" }
]
}
}
নেস্টেড অ্যারেতে CountryName = "Canada" থাকা ডকুমেন্ট খোঁজা
> db.nestedJSONArrayDemo.find({"ClientDetails.ClientPersonalDetails.CountryName": "Canada"}).pretty();
আউটপুট (দ্বিতীয় ডকুমেন্ট মэтচ করেছে):
{
"_id": ObjectId("5cd2cc14b64f4b851c3a13bd"),
"ClientDetails": {
"ClientPersonalDetails": [
{ "CountryName": "Belgium" },
{ "CountryName": "Canada" },
{ "CountryName": "Egypt" }
]
}
}
ব্যাখ্যা: ClientDetails.ClientPersonalDetails.CountryName পথ দিয়ে MongoDB অ্যারের প্রতিটি অবজেক্টের CountryName চেক করে। যেকোনো একটি মэтচ করলে ডকুমেন্ট রিটার্ন হয়।