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

नेवला में एक सरणी मान को कैसे अपडेट करें

आप $set both दोनों का उपयोग नहीं कर सकते और $push नेस्टेड ऑपरेटरों के समान अद्यतन अभिव्यक्ति में।

अद्यतन ऑपरेटरों का उपयोग करने के लिए सही सिंटैक्स निम्नानुसार है:

{
   <operator1>: { <field1>: <value1>, ... },
   <operator2>: { <field2>: <value2>, ... },
   ...
}

जहां <operator1>, <operator2> यहां निर्दिष्ट किसी भी अद्यतन ऑपरेटर सूची से हो सकता है।

सरणी में एक नया तत्व जोड़ने के लिए, एक $push ऑपरेटर पर्याप्त होगा उदा। आप findByIdAndUpdate . का उपयोग कर सकते हैं संशोधित दस्तावेज़ को

. के रूप में वापस करने के लिए अद्यतन विधि
Employeehierarchy.findByIdAndUpdate(employeeparent._id,
    { "$push": { "childrens": employee._id } },
    { "new": true, "upsert": true },
    function (err, managerparent) {
        if (err) throw err;
        console.log(managerparent);
    }
);

अपने मूल update() का उपयोग करना विधि, वाक्य रचना है

Employeehierarchy.update(
   { "_id": employeeparent._id},
   { "$push": { "childrens": employee._id } },
   function (err, raw) {
       if (err) return handleError(err);
       console.log('The raw response from Mongo was ', raw);
   }
);

जिसमें कॉलबैक फ़ंक्शन तर्क प्राप्त करता है (err, raw) जहां

  • err यदि कोई त्रुटि हुई है तो क्या यह त्रुटि है
  • raw मोंगो से पूर्ण प्रतिक्रिया है

चूंकि आप संशोधित दस्तावेज़ की जांच करना चाहते हैं, मेरा सुझाव है कि आप findByIdAndUpdate का उपयोग करें update() . के बाद से काम कर रहा है विधि आपको संशोधित दस्तावेज़ नहीं देगी, केवल मोंगो से पूर्ण लेखन परिणाम।

यदि आप दस्तावेज़ में किसी फ़ील्ड को अपडेट करना चाहते हैं और उसी समय एक सरणी में एक तत्व जोड़ना चाहते हैं तो आप ऐसा कर सकते हैं

Employeehierarchy.findByIdAndUpdate(employeeparent._id,
    { 
        "$set": { "name": "foo" },
        "$push": { "childrens": employee._id } 
    } 
    { "new": true, "upsert": true },
    function (err, managerparent) {
        if (err) throw err;
        console.log(managerparent);
    }
);

उपरोक्त name को अपडेट करेगा फ़ील्ड को "foo" में डालें और कर्मचारी आईडी को childrens . में जोड़ें सरणी।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. पारित किया गया तर्क 12 बाइट्स का एक स्ट्रिंग होना चाहिए

  2. स्प्रिंग डेटा मोंगोडब आईएसओ तिथि के लिए खोज करता है

  3. मोंगोडब:मल्टीकी इंडेक्सिंग संरचना?

  4. हमेशा एम्बेडेड के साथ एम्बर डेटा बहु स्तरीय पदानुक्रम

  5. $lookup . के बाद एकत्रीकरण फ़िल्टर