2012-01-21 30 views
8

に埋め込まれた文書を更新する私は、配列に_idによって埋め込まれた文書を削除する方法を発見しました:マングース。 <a href="http://mongoosejs.com/docs/embedded-documents.html" rel="nofollow">a official mongoose site</a>では、アレイ

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

私はどのように私はこの1つを削除する代わりに更新することができます興味がありますか?

答えて

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:このexempleで

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

     } 
    ); 

を私はidパラメーターを持つ要素を検索していますが、それは型のObjectIDの実際の_idパラメータである可能性があります。

も参照してください:MongooseJS Doc - Updating SetSimilar SO question

関連する問題