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

मोंगोडब में नेस्टेड सरणी तत्व अपडेट करें

प्रश्न में कुछ सुधार की आवश्यकता है, अन्यथा यह लगभग वहीं है। अपडेट काम नहीं कर रहा है क्योंकि $elemMatch attributeSet . के लिए (दस्तावेज़ों की सरणी) फ़ील्ड id पर होनी है फ़िल्टर करने के लिए उन दस्तावेज़ों की प्रॉपर्टी attributeSet.id . पर नहीं , यह नहीं समझेगा कि यह क्या है। और नेस्टेड elemMatch की आवश्यकता नहीं है, बस डॉट नोटेशन का उपयोग करें

डीबग करने के लिए आप इसे खोज क्वेरी के साथ आज़मा सकते हैं।

क्वेरी (शेल):

db.collection.findOneAndUpdate(
  {
    _id: settingsToBeUpdated._id,
    attributeSet: {
      $elemMatch: {
        id: attributeSetId,
        "attributes.id": id
      }
    }
  },
  {
    $set: {
      "attributeSet.$[as].attributes.$[a].attributeName":
        attributeDto.attributeName,
      "attributeSet.$[as].attributes.$[a].defaultValue":
        attributeDto.defaultValue,
      "attributeSet.$[as].attributes.$[a].isRequired": attributeDto.isRequired
    }
  },
  {
    arrayFilters: [{ "as.id": attributeSetId }, { "a.id": id }],
    returnNewDocument: true
  }
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो एकत्रीकरण ढांचा, क्रमबद्ध करें और फिर समूह काम नहीं कर रहा है

  2. नेस्टेड दस्तावेज़ पर MongoDb TTL संभव है?

  3. नई इंडेक्स इंटरसेक्शन सुविधा को देखते हुए, मोंगोडीबी 2.6 में कंपाउंड इंडेक्स अभी भी प्रासंगिक कब हैं?

  4. स्प्रिंग बूट मैसकल और मोंगोडीबी को जोड़ता है

  5. मोंगो मेरी तिथि को एक स्ट्रिंग के रूप में क्यों संग्रहीत करता है?