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

MongoDB में एम्बेडेड डॉक्यूमेंट के फ़ील्ड क्वेरी करें

MongoDB में एम्बेडेड डॉक्यूमेंट ऐरे के फ़ील्ड द्वारा क्वेरी

ऐरे के अंदर एम्बेडेड डॉक्यूमेंट के फ़ील्ड खोजने के लिए डॉट नोटेशन का उपयोग करें।

कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें

> db.embeddedDocumentDemo.insertOne({
  "CustomerDetails": [
    {"CustomerName": "Chris", "CustomerPurchasePrice": 3000},
    {"CustomerName": "Robert", "CustomerPurchasePrice": 4500},
    {"CustomerName": "David", "CustomerPurchasePrice": 1000}
  ]
});
{ "acknowledged": true, "insertedId": ObjectId("5cd32347edc6604c74817ccd") }

डॉक्यूमेंट देखें

> db.embeddedDocumentDemo.find().pretty();
{
  "_id": ObjectId("5cd32347edc6604c74817ccd"),
  "CustomerDetails": [
    {"CustomerName": "Chris", "CustomerPurchasePrice": 3000},
    {"CustomerName": "Robert", "CustomerPurchasePrice": 4500},
    {"CustomerName": "David", "CustomerPurchasePrice": 1000}
  ]
}

एम्बेडेड डॉक्यूमेंट में CustomerPurchasePrice = 4500 खोजें

> db.embeddedDocumentDemo.find({"CustomerDetails.CustomerPurchasePrice": 4500});
{ "_id": ObjectId("5cd32347edc6604c74817ccd"), "CustomerDetails": [ {"CustomerName": "Chris", "CustomerPurchasePrice": 3000}, {"CustomerName": "Robert", "CustomerPurchasePrice": 4500}, {"CustomerName": "David", "CustomerPurchasePrice": 1000} ] }

व्याख्या

  • क्वेरी CustomerDetails.CustomerPurchasePrice ऐरे के हर ऑब्जेक्ट में चेक करती है
  • किसी भी एलिमेंट में 4500 मिलने पर पूरा डॉक्यूमेंट वापस आता है
  • यहां Robert का परचेज प्राइस 4500 है

केवल मैचिंग एलिमेंट प्राप्त करने के लिए

पूरा डॉक्यूमेंट नहीं, केवल मैचिंग ऐरे एलिमेंट चाहिए तो:

  • $elemMatch प्रोजेक्शन में उपयोग करें
  • या एग्रीगेशन में $filter उपयोग करें

उदाहरण: $elemMatch प्रोजेक्शन

db.embeddedDocumentDemo.find(
  {"CustomerDetails.CustomerPurchasePrice": 4500},
  {"CustomerDetails": { $elemMatch: {"CustomerPurchasePrice": 4500} }}
)
  1. - MongoDB find() क्वेरी: नेस्टेड दस्तावेज के लिए

    नेस्टेड दस्तावेज से मान प्राप्त करने के लिए, डॉट नोटेशन का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo591.insert([ { Name: John, Age: 23 }, { Name: Carol, Age: 26 }, { Name: Robert, Age: 29, details: [ { Email: Robert@gmail.com, CountryName:

  1. - MongoDB क्वेरी: नेस्टेड दस्तावेज अपडेट करें

    आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo595.insertOne({ Information: [ { _id: new ObjectId(), Name:Chris }, { _id:new ObjectId(), Name:Robert } ] }); { acknowledged : true, insertedId : ObjectId(5e93369cfd2d90c177b5bce4) } find() मेथड की मदद से कलेक्शन के सभी

  1. - MongoDB में एम्बेडेड डॉक्यूमेंट की सरणी पर फ़िल्टर क्वेरी कैसे करें?

    इसके लिए MongoDB में aggregate() का उपयोग करें। आइए 3 स्तरों के नेस्टेड डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo736.insertOne( { _id: 101, details1: [ { details2: [ { details3: { Name: John } } ] } ] } ); { acknowledged : true, insertedId : 101 } > db.demo736.insertOne( { _id: 102,