MongoDB में डॉट नोटेशन से नेस्टेड सब-फ़ील्ड क्वेरी करना
एम्बेडेड डॉक्यूमेंट के अंदर फ़ील्ड खोजने के लिए डबल कोट्स में डॉट नोटेशन ("parent.child") उपयोग करें।
कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें
> db.searchSubFieldDemo.insertOne({
"UserDetails": {"UserEmailId": "John123@gmail.com", "UserAge": 21}
});
{ "acknowledged": true, "insertedId": ObjectId("5cd3d909edc6604c74817ce2") }
> db.searchSubFieldDemo.insertOne({
"UserDetails": {"UserEmailId": "Carol@yahoo.com", "UserAge": 26}
});
{ "acknowledged": true, "insertedId": ObjectId("5cd3d9a4edc6604c74817ce3") }
सभी डॉक्यूमेंट देखें
> db.searchSubFieldDemo.find().pretty();
{
"_id": ObjectId("5cd3d909edc6604c74817ce2"),
"UserDetails": {"UserEmailId": "John123@gmail.com", "UserAge": 21}
}
{
"_id": ObjectId("5cd3d9a4edc6604c74817ce3"),
"UserDetails": {"UserEmailId": "Carol@yahoo.com", "UserAge": 26}
}
सब-फ़ील्ड UserEmailId से खोजें
> db.searchSubFieldDemo.find({"UserDetails.UserEmailId": "Carol@yahoo.com"});
{ "_id": ObjectId("5cd3d9a4edc6604c74817ce3"), "UserDetails": {"UserEmailId": "Carol@yahoo.com", "UserAge": 26} }
नियम
- फ़ील्ड पथ डबल कोट्स में:
"UserDetails.UserEmailId" - डॉट नोटेशन: पैरेंट.चाइल्ड
- गहरी नेस्टिंग:
"level1.level2.level3.field" - ऐरे के लिए:
"arrayField.embeddedField"(ऐरे के हर एलिमेंट में चेक)
उदाहरण: गहरी नेस्टिंग
// UserDetails.Address.City.Pincode
db.collection.find({"UserDetails.Address.City.Pincode": "110001"})