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

MongoDB में सब-अरे से डॉक्यूमेंट खोजें

MongoDB में डॉट नोटेशन से सब-अरे (नेस्टेड ऐरे) क्वेरी करना

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

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

> db.findDocumentDemo.insertOne({
  "EmployeeDetails": {
    "EmployeeAppraisalTime": [
      {"EmployeeDesignation": "Developer", "Salary": 45000},
      {"EmployeeDesignation": "Tester", "Salary": 30000},
      {"EmployeeDesignation": "HR", "Salary": 22000},
      {"EmployeeDesignation": "Accountant", "Salary": 18000}
    ]
  }
});
{ "acknowledged": true, "insertedId": ObjectId("5cd2c0f7b64f4b851c3a13a8") }

> db.findDocumentDemo.insertOne({
  "EmployeeDetails": {
    "EmployeeAppraisalTime": [
      {"EmployeeDesignation": "Developer", "Salary": 105000},
      {"EmployeeDesignation": "Tester", "Salary": 45000},
      {"EmployeeDesignation": "HR", "Salary": 34000},
      {"EmployeeDesignation": "Accountant", "Salary": 24000}
    ]
  }
});
{ "acknowledged": true, "insertedId": ObjectId("5cd2c1d5b64f4b851c3a13a9") }

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

> db.findDocumentDemo.find().pretty();
{
  "_id": ObjectId("5cd2c0f7b64f4b851c3a13a8"),
  "EmployeeDetails": {
    "EmployeeAppraisalTime": [
      {"EmployeeDesignation": "Developer", "Salary": 45000},
      {"EmployeeDesignation": "Tester", "Salary": 30000},
      {"EmployeeDesignation": "HR", "Salary": 22000},
      {"EmployeeDesignation": "Accountant", "Salary": 18000}
    ]
  }
}
{
  "_id": ObjectId("5cd2c1d5b64f4b851c3a13a9"),
  "EmployeeDetails": {
    "EmployeeAppraisalTime": [
      {"EmployeeDesignation": "Developer", "Salary": 105000},
      {"EmployeeDesignation": "Tester", "Salary": 45000},
      {"EmployeeDesignation": "HR", "Salary": 34000},
      {"EmployeeDesignation": "Accountant", "Salary": 24000}
    ]
  }
}

सब-अरे में Developer और सैलरी 45000 या 105000 खोजें

> db.findDocumentDemo.find({
  'EmployeeDetails.EmployeeAppraisalTime.EmployeeDesignation': 'Developer',
  'EmployeeDetails.EmployeeAppraisalTime.Salary': { '$in': [45000, 105000] }
});
{ "_id": ObjectId("5cd2c0f7b64f4b851c3a13a8"), "EmployeeDetails": { "EmployeeAppraisalTime": [ {"EmployeeDesignation": "Developer", "Salary": 45000}, ... ] } }
{ "_id": ObjectId("5cd2c1d5b64f4b851c3a13a9"), "EmployeeDetails": { "EmployeeAppraisalTime": [ {"EmployeeDesignation": "Developer", "Salary": 105000}, ... ] } }

व्याख्या

  • EmployeeDetails.EmployeeAppraisalTime.EmployeeDesignation - ऐरे के हर ऑब्जेक्ट में चेक करता है
  • $in: [45000, 105000] - सैलरी इन दोनों में से कोई एक हो
  • दोनों कंडीशन एक ही ऐरे एलिमेंट पर लागू होती हैं (MongoDB का डिफ़ॉल्ट व्यवहार)

नोट: $elemMatch के साथ अंतर

अगर आपको एक ही ऐरे एलिमेंट पर दोनों कंडीशन लागू करनी है तो $elemMatch उपयोग करें:

db.findDocumentDemo.find({
  "EmployeeDetails.EmployeeAppraisalTime": {
    $elemMatch: {
      EmployeeDesignation: "Developer",
      Salary: { $in: [45000, 105000] }
    }
  }
})
  1. - MongoDB में Document से Array Value Delete करना

    Array values delete करने के लिए MongoDB में $pull का उपयोग करें। $pull operator existing array से उन सभी instances को remove करता है जो specified condition से match करते हैं। Collection बनाना > db.demo535.insertOne( ... { ... studentId : 101, ... studentName : Chris, ... ListOfMailIds : [

  1. - MongoDB में Same Array Elements वाले Document Find करना

    Same array elements वाले document को find करने के लिए find() में $all का उपयोग करें। $all operator उन documents को select करता है जहां field का value एक array है जिसमें सभी specified elements मौजूद हैं। Collection बनाना > db.demo543.insertOne({id:101, subject:[MySQL, Java ,C,Python]}); { acknowl

  1. - MongoDB में एम्बेडेड डॉक्यूमेंट में निश्चित तत्व कैसे ढूंढें?

    निश्चित तत्व ढूंढने के लिए MongoDB में $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo744.insertOne( { studentInformation: [ { studentName:Robert, grade:A }, { studentName:Bob, grade:C }, { studentName:John, grade:B }, { studentName:Sam, grade:A } ] } ); { acknowledged : true, insert