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

MongoDB में ऑब्जेक्ट के ऐरे में कैसे खोजें

MongoDB में ऑब्जेक्ट के ऐरे में खोज के लिए $elemMatch ऑपरेटर का उपयोग करें। यह एक ही ऐरे एलिमेंट में मल्टीपल फील्ड क्राइटेरिया मैच करने की अनुमति देता है।

उदाहरण से समझें

एक कलेक्शन बनाकर नेस्टेड ऑब्जेक्ट ऐरे वाला डॉक्यूमेंट इन्सर्ट करते हैं:

> db.searchArrayDemo.insertOne({
  "EmployeeFirstName": "Adam",
  "EmployeeLastName": "Smith",
  "EmployeeDateOfBirth": ISODate("1992-01-31T13:45:10Z"),
  "EmployeeSkills": ["Spring and Hibernate Framework", "Machine Learning"],
  "EmployeeDetails": [
    {"EmployeePerformanceArea": "Java", "Year": 2001},
    {"EmployeePerformanceArea": "Python", "Year": 2005}
  ]
});
> db.searchArrayDemo.insertOne({
  "EmployeeFirstName": "Carol",
  "EmployeeLastName": "Taylor",
  "EmployeeDateOfBirth": ISODate("1993-04-21T11:10:20Z"),
  "EmployeeSkills": ["C++", "Cloud Computing"],
  "EmployeeDetails": [
    {"EmployeePerformanceArea": "C++", "Year": 1998},
    {"EmployeePerformanceArea": "C++ Game Developer", "Year": 2007}
  ]
});

सभी डॉक्यूमेंट देखने के लिए:

> db.searchArrayDemo.find().pretty();

केस 1: एलिमेंट मिलने पर

EmployeePerformanceArea: "C++" और Year: 1998 दोनों वाला एलिमेंट खोजें:

> db.searchArrayDemo.find({EmployeeDetails: {$elemMatch: {EmployeePerformanceArea: "C++", Year: 1998}}}).pretty();

आउटपुट:

{ "_id": ..., "EmployeeFirstName": "Carol", "EmployeeLastName": "Taylor", "EmployeeDateOfBirth": ISODate("1993-04-21T11:10:20Z"), "EmployeeSkills": ["C++", "Cloud Computing"], "EmployeeDetails": [ {"EmployeePerformanceArea": "C++", "Year": 1998}, {"EmployeePerformanceArea": "C++ Game Developer", "Year": 2007} ] }

केस 2: एलिमेंट न मिलने पर

> db.searchArrayDemo.find({EmployeeDetails: {$elemMatch: {EmployeePerformanceArea: "C", Year: 1996}}}).pretty();

कोई परिणाम नहीं मिलेगा क्योंकि ऐसा कोई एलिमेंट नहीं है।

$elemMatch के बिना क्वेरी अलग-अलग ऐरे एलिमेंट से फील्ड मैच कर सकती है, जो गलत परिणाम देगी।

  1. - MongoDB में ऐरे में कैसे जोड़ें?

    MongoDB में ऐरे में जोड़ने के लिए $concatArrays ऑपरेटर का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo435.insertOne({"FirstName":["Chris"],"LastName":["Brown"]} ); {    "acknowledged" : true,    "inserted

  1. - MongoDB में ऑब्जेक्ट के अंदर ऐरे में आइटम कैसे डालें?

    ऑब्जेक्ट के अंदर पहले से बने ऐरे में आइटम डालने के लिए MongoDB $push ऑपरेटर का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo449.insertOne( ... { ...    details1: { ...       details2: [{ ...          _id:new ObjectId(), ...  

  1. - MongoDB में ऑब्जेक्ट ऐरे से आइटम कैसे प्राप्त करें?

    ऑब्जेक्ट ऐरे से आइटम प्राप्त करने के लिए aggregate() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo459.insertOne( ... { "_id" : 1, ... "Information" : [ ...    { ...         "Name" : "Chris", ...