2012-01-21 16 views
8

a official mongoose site में में एम्बेडेड दस्तावेज़ को अद्यतन करने मैंने पाया कि मैं सरणी में _ id द्वारा एम्बेडेड दस्तावेज़ निकाल सकते हैं:mongoose। सरणी

post.comments.id(my_id).remove(); 
post.save(function (err) { 
    // embedded comment with id `my_id` removed! 
}); 

मुझे इसमें रुचि है कि कैसे मैं बजाय इसे निकालने से अद्यतन कर सकते हैं?

उत्तर

11

आप कर सकता है

var comment = post.comments.id(my_id); 
comment.author = 'Bruce Wayne'; 

post.save(function (err) { 
    // emmbeded comment with author updated  
}); 
+0

धन्यवाद! ये मेरे लिए सही है। – Erik

+4

जब मैं एम्बेडेड दस्तावेज़ अपडेट करता हूं तो सहेजना प्रतीत नहीं होता है - और इसे बदलकर चिह्नित करने से यह अमान्य नहीं होता है। –

12

यह कुछ इस तरह दिखाई shoud:

YOURSCHEMA.update(
     { _id: "DocumentObjectid" , "ArrayName.id":"ArrayElementId" }, 
     { $set:{ "ArrayName.$.TheParameter":"newValue" } }, 
     { upsert: true }, 
     function(err){ 

     } 
    ); 

इस उदाहरण में मैं एक id पैरामीटर के साथ एक तत्व खोज रहा हूँ, लेकिन यह प्रकार objectId की वास्तविक _ id पैरामीटर हो सकता है।

यह भी देखें: MongooseJS Doc - Updating Set और Similar SO question

संबंधित मुद्दे