Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में डॉट नोटेशन से सब-फ़ील्ड खोजें

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"})
  1. - MongoDB में रेगुलर एक्सप्रेशन के साथ टेक्स्ट खोज

    MongoDB में रेगुलर एक्सप्रेशन के साथ टेक्स्ट खोज के लिए, $regex का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo519.insertOne({Value:50,60,70}); { acknowledged : true, insertedId : ObjectId(5e88b9c0b3fbf26334ef6111) } > db.demo519.insertOne({Value:80,90,50}); { acknowledged : t

  1. - MongoDB पूर्ण टेक्स्ट खोज कैसे करें

    MongoDB में पूर्ण टेक्स्ट खोज के लिए, $text का उपयोग करें। $text फ़ील्ड्स की सामग्री पर टेक्स्ट खोज करता है। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo654.createIndex({Name:text}); { createdCollectionAutomatically : true, numIndexesBefore : 1, numIndexesAfter : 2, ok : 1 } > db.demo654.

  1. - MongoDB में केस-इनसेंसिटिव खोज

    केस-इनसेंसिटिव खोज के लिए, find() मेथड में regex का उपयोग करें। सिंटैक्स निम्न है: db.demo572.find({yourFieldName : { $regex:/^yourValue$/i}}); उपरोक्त सिंटैक्स को समझने के लिए, आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo572.insertOne({CountryName:US}); { acknowledged : true, insertedI