डॉट (.) नोटेशन का उपयोग करके नेस्टेड फ़ील्ड पर इंडेक्स बनाएं
MongoDB में नेस्टेड (एम्बेडेड) फ़ील्ड पर इंडेक्स बनाने के लिए डॉट नोटेशन में फ़ील्ड पथ निर्दिष्ट करें, जैसे "parent.child.grandchild": 1।
उदाहरण: संग्रह बनाना
> db.createIndexOnNestedFieldDemo.insertOne(
{"UserDetails": {"UserPersonalDetails": {"UserFirstName": "John", "UserLastName": "Smith"}}}
);
{ "acknowledged": true, "insertedId": ObjectId("5ce929c778f00858fb12e916") }
> db.createIndexOnNestedFieldDemo.insertOne(
{"UserDetails": {"UserPersonalDetails": {"UserFirstName": "Chris", "UserLastName": "Brown"}}}
);
{ "acknowledged": true, "insertedId": ObjectId("5ce929d678f00858fb12e917") }
> db.createIndexOnNestedFieldDemo.insertOne(
{"UserDetails": {"UserPersonalDetails": {"UserFirstName": "David", "UserLastName": "Miller"}}}
);
{ "acknowledged": true, "insertedId": ObjectId("5ce929e378f00858fb12e918") }
सभी डॉक्यूमेंट्स देखना
> db.createIndexOnNestedFieldDemo.find().pretty();
{
"_id": ObjectId("5ce929c778f00858fb12e916"),
"UserDetails": {"UserPersonalDetails": {"UserFirstName": "John", "UserLastName": "Smith"}}
}
{
"_id": ObjectId("5ce929d678f00858fb12e917"),
"UserDetails": {"UserPersonalDetails": {"UserFirstName": "Chris", "UserLastName": "Brown"}}
}
{
"_id": ObjectId("5ce929e378f00858fb12e918"),
"UserDetails": {"UserPersonalDetails": {"UserFirstName": "David", "UserLastName": "Miller"}}
}
नेस्टेड फ़ील्ड पर इंडेक्स बनाने की क्वेरी
UserDetails.UserPersonalDetails.UserLastName पर आरोही (1) इंडेक्स बनाएं:
> db.createIndexOnNestedFieldDemo.createIndex({"UserDetails.UserPersonalDetails.UserLastName": 1});
आउटपुट:
{
"createdCollectionAutomatically": false,
"numIndexesBefore": 1,
"numIndexesAfter": 2,
"ok": 1
}
इंडेक्स सफलतापूर्वक बन गया। अब UserLastName पर क्वेरीज़ तेज़ होंगी।
नोट: नेस्टेड फ़ील्ड्स पर इंडेक्स बनाने के लिए पूरा पथ डॉट नोटेशन में दें। इंडेक्स नाम स्वतः जनरेट होता है या आप कस्टम नाम दे सकते हैं।