2012-02-15 12 views
3

更新するアイテムの_idを使用して、複数レベルの埋め込みドキュメントを更新するにはどうすればよいですか?例えばMongoose.js:深い埋め込みドキュメントをIDで更新するにはどうすればよいですか?

、私は私のモデルファイルに次のようしている場合:

var Subitems = new Schema({ 
    "title": String, 
    "body": String 
)} 

var Items = new Schema({ 
    "title": String, 
    "subitems": [Subitems] 
)}; 

var Projects = new Schema({ 
    "title": String, 
    "description": String, 
    "items": [Items] 
}); 

var exports = module.exports = mongoose.model('Project', Projects); 

は、どのように私はsubitems要素の_idを知っている私のsubitemsの1のbodyを更新して行くのでしょうか?

私はまずプロジェクトを見つけて、subitemsにプッシュしてプロジェクトを保存すると仮定します。それで、問題は、それ以上のものすべてを繰り返すことなく、複数レベルの深い埋め込みをどのようにプッシュするのですか?私はその_idでそれを行うことはできますか?

+0

この質問への回答は私に!ありがとう! :3 –

答えて

2

私はちょうどそれを理解したと思います。

var myitem = req.project.items.id(item_id); 
myitem.body = req.body.item.body; 

req.project.save(function (err){ 
    //woohoo! updated the embedded doc with the new values!  
}); 

私は選択にアドバイスに従うことによってそれを考え出し:面白いがそれは常に正しいSOに投稿した後に起こるか:)

ここで私は、任意のより良い/別の方法がありますなら、私に知らせてやったことですこのSOの投稿の回答: How to update embedded document in mongoose?

関連する問題