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

MongoDB में ऐरे के अंदर ऑब्जेक्ट के फील्ड द्वारा क्वेरी कैसे करें?


$elemMatch से ऐरे के अंदर ऑब्जेक्ट क्वेरी करें

जब ऐरे में ऑब्जेक्ट्स हों और आपको ऐरे के किसी ऑब्जेक्ट के विशिष्ट फील्ड द्वारा क्वेरी करनी हो, तो $elemMatch ऑपरेटर का उपयोग करें।

सिंटैक्स

db.yourCollectionName.find({
  "yourOuterFieldName": {
    $elemMatch: {
      "yourInnerFieldName": "yourValue"
    }
  }
}).pretty();

उदाहरण

> db.objectInAnArrayDemo.insertOne({
  "StudentDetails": [
    {"StudentName": "John", "StudentMessage": "Hi"},
    {"StudentName": "Larry", "StudentMessage": "Hello"}
  ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5c92635d36de59bd9de06381") }

> db.objectInAnArrayDemo.insertOne({
  "StudentDetails": [
    {"StudentName": "Carol", "StudentMessage": "Hello"},
    {"StudentName": "David", "StudentMessage": "Good Morning"}
  ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5c92637936de59bd9de06382") }

सभी दस्तावेज़:

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

"Good Morning" मैसेज वाले दस्तावेज़ खोजें

> db.objectInAnArrayDemo.find({
  "StudentDetails": {
    $elemMatch: {"StudentMessage": "Good Morning"}
  }
}).pretty();

व्याख्या: $elemMatch ऐरे के उन एलिमेंट्स से मिलान करता है जो निर्दिष्ट सभी शर्तों को पूरा करते हैं। सरल मान खोज के लिए डॉट नोटेशन पर्याप्त है, लेकिन एक ही ऐरे एलिमेंट में कई शर्तों के लिए $elemMatch आवश्यक है।

  1. MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें

    इसके लिए $not के साथ $in ऑपरेटर का उपयोग करें। आइए एक संग्रह बनाते हैं: [ { id: 101, subjectid: [ 102 ] }, { id: 102, subjectid: [ 102 ] } ] सभी दस्तावेज़ देखने के लिए: db.collection.find() आउटपुट: [ { _id: ObjectId(5a934e000102030405000000),

  1. - MongoDB क्वेरी: ऐरे फील्ड वाले दस्तावेजों को मैच करें

    ऐरे फील्ड वाले दस्तावेजों को मैच करने के लिए, $elemMatch ऑपरेटर का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo592.insertOne({ id:101, details: [ { Name: Chris, Value: 200 }, { Name: David, Value: 800 } ] }); { acknowledged : true, insertedId : Ob

  1. - MongoDB में सरणी क्वेरी करके विशिष्ट मान प्राप्त करें

    सरणी से विशिष्ट मान प्राप्त करने के लिए aggregate() के साथ $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo761.insertOne( { details: [ { student: { FullName: Chris Brown } } ] } ); { acknowledged : true, insertedId : ObjectId(5eb034d15637cd592b2a4af1) } > db.demo761.insertOne( { de