MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

नेस्टेड सरणी डेटा के लिए elemMatch के साथ MongoDB क्वेरी

आपकी क्वेरी केवल उन सभी दस्तावेज़ों को लौटा रही है जिनमें modules . है तत्व जहां name == 'foo' . $elemMatch . का उपयोग करने के लिए आउटपुट को फ़िल्टर करने के लिए, आपको इसे find . के प्रोजेक्शन तर्क में उपयोग करने की आवश्यकता है क्वेरी के हिस्से के बजाय कॉल करें:

db.test.find({}, {modules: {$elemMatch: {name: 'foo'}}})

दोनों अवधारणाओं को संयोजित करने के लिए, आप क्वेरी में मिलान किए गए सरणी तत्व की अनुक्रमणिका को $ . के साथ संदर्भित कर सकते हैं :

db.test.find({modules: {$elemMatch: {name: 'foo'}}}, {'modules.$': 1})

किसी भी तरह से वापसी:

{
  "_id": ObjectId("..."),
  "modules": [
    {
      "name": "foo",
      "mandatory": false,
      "group": [
        {
          "name": "g1"
        }
      ]
    }
  ]
}

यदि आपको आउटपुट में शामिल अन्य फ़ील्ड की आवश्यकता है, तो उन्हें प्रोजेक्शन ऑब्जेक्ट में जोड़ें (उदा. name: 1 )।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. हरोकू पर मोंगोडीबी कैसे तैनात करें

  2. आंशिक रूप से परिभाषित स्कीमा के साथ किसी दस्तावेज़ का मानचित्रण करना

  3. मोंगो इंटरफ़ेस

  4. MongoDB C# ड्राइवर के साथ बहुरूपी प्रकारों को डिसेरिएलाइज़ करना

  5. मोंगोडीबी $आकार