MongoDB में डॉट नोटेशन से नेस्टेड JSON ऐरे क्वेरी करना
गहरे नेस्टेड ऐरे में वैल्यू खोजने के लिए डॉट नोटेशन का उपयोग करके पूरा पथ निर्दिष्ट करें।
कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें
> 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" }
]
}
}
नेस्टेड ऐरे में "Canada" खोजें
> db.nestedJSONArrayDemo.find({"ClientDetails.ClientPersonalDetails.CountryName": "Canada"}).pretty();
{
"_id": ObjectId("5cd2cc14b64f4b851c3a13bd"),
"ClientDetails": {
"ClientPersonalDetails": [
{ "CountryName": "Belgium" },
{ "CountryName": "Canada" },
{ "CountryName": "Egypt" }
]
}
}
कैसे काम करता है
- MongoDB ऑटोमैटिकली ऐरे के अंदर ऑब्जेक्ट के फ़ील्ड खोजता है
ClientDetails.ClientPersonalDetails.CountryNameपथ:ClientDetails- टॉप लेवल ऑब्जेक्टClientPersonalDetails- ऐरे फ़ील्डCountryName- ऐरे के ऑब्जेक्ट में फ़ील्ड- ऐरे के किसी भी एलिमेंट में मैच मिलने पर डॉक्यूमेंट वापस आता है
नोट
यह क्वेरी ऐरे के किसी भी एलिमेंट में "Canada" ढूंढती है, न कि विशिष्ट इंडेक्स पर।