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

MongoDB में डॉट नोटेशन से इनर क्लास/सबडॉक्यूमेंट में खोजें

MongoDB में डॉट नोटेशन से नेस्टेड फ़ील्ड क्वेरी करना

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

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

> db.searchInInnerDemo.insertOne({
  "StudentFirstName": "Robert",
  "StudentTechnicalDetails": {
    "StudentBackEndTechnology": "MongoDB",
    "StudentLanguage": "Java"
  }
});
{ "acknowledged": true, "insertedId": ObjectId("5cd2dd89b64f4b851c3a13d2") }

> db.searchInInnerDemo.insertOne({
  "StudentFirstName": "David",
  "StudentTechnicalDetails": {
    "StudentBackEndTechnology": "MySQL",
    "StudentLanguage": "PHP"
  }
});
{ "acknowledged": true, "insertedId": ObjectId("5cd2dda3b64f4b851c3a13d3") }

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

> db.searchInInnerDemo.find().pretty();
{
  "_id": ObjectId("5cd2dd89b64f4b851c3a13d2"),
  "StudentFirstName": "Robert",
  "StudentTechnicalDetails": {
    "StudentBackEndTechnology": "MongoDB",
    "StudentLanguage": "Java"
  }
}
{
  "_id": ObjectId("5cd2dda3b64f4b851c3a13d3"),
  "StudentFirstName": "David",
  "StudentTechnicalDetails": {
    "StudentBackEndTechnology": "MySQL",
    "StudentLanguage": "PHP"
  }
}

केस 1: इनर क्लास के एक प्रॉपर्टी से मैच करें

> db.searchInInnerDemo.find({"StudentTechnicalDetails.StudentBackEndTechnology": "MongoDB"}).pretty();
{
  "_id": ObjectId("5cd2dd89b64f4b851c3a13d2"),
  "StudentFirstName": "Robert",
  "StudentTechnicalDetails": {
    "StudentBackEndTechnology": "MongoDB",
    "StudentLanguage": "Java"
  }
}

केस 2: पूरे सबडॉक्यूमेंट से मैच करें (सभी फील्ड)

> db.searchInInnerDemo.find({
  "StudentTechnicalDetails": {
    "StudentBackEndTechnology": "MongoDB",
    "StudentLanguage": "Java"
  }
}).pretty();
{
  "_id": ObjectId("5cd2dd89b64f4b851c3a13d2"),
  "StudentFirstName": "Robert",
  "StudentTechnicalDetails": {
    "StudentBackEndTechnology": "MongoDB",
    "StudentLanguage": "Java"
  }
}

मुख्य अंतर

क्वेरी प्रकारव्यवहार
डॉट नोटेशन (केस 1)केवल निर्दिष्ट फ़ील्ड मैच करता है, बाकी इग्नोर
पूरा सबडॉक्यूमेंट (केस 2)सभी फील्ड एक्जैक्ट मैच होने चाहिए, क्रम भी

बेहतर तरीका: $elemMatch (ऐरे के लिए)

अगर सबडॉक्यूमेंट ऐरे में हो तो $elemMatch उपयोग करें।

  1. - MongoDB में _id द्वारा दस्तावेज़ कैसे हटाएं?

    _id द्वारा हटाने के लिए, MongoDB में remove() का उपयोग करें। निम्न सिंटैक्स है: db.yourCollectionName.remove({_id:yourObjectId}); उपरोक्त सिंटैक्स को समझने के लिए, आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo518.insertOne({ClientName:Chris}); { acknowledged : true, insertedId : ObjectId(5e88

  1. - MongoDB में Sub-documents पर Find Query Execute करना

    Sub-documents के लिए dot notation का उपयोग करें। आइए पहले documents के साथ एक collection बनाते हैं: > db.demo537.insertOne({details:{SubjectName:MongoDB}}); { acknowledged : true, insertedId : ObjectId(5e8c8a10ef4dcbee04fbbc05) } > db.demo537.insertOne({details:{SubjectName:MySQL}}); { acknowl

  1. - MongoDB में Document के Fields Access करना

    Document में fields access करने के लिए simply find() का उपयोग करें। Collection बनाना > db.demo565.insertOne( ... { ... id:101, ... Name:David, ... CountryName:US ... } ... ); { acknowledged : true, insertedId : ObjectId(5e90896739cfeaaf0b97b577) } > db.demo565.insertOne( ... { ... id: