2012-03-23 108 views
3

我有有MongoEmbeddedDocument Y.MongoDB的添加而不是覆蓋它

的某些情況下,MongoDocument X我現在要額外embeddeddocument Y添加到我的X系列額外嵌入文檔。我試過了下面的代碼:

var mongo = db.x.findOne(); 
mongo.y = { title:"test" } 
db.x.save(mongo) 

問題是那段代碼會刪除我的整個y embeddeddocuments集合。有沒有我可以添加一個而不刪除現有的?

+0

你是一個數組嗎? – 2012-03-23 21:08:18

回答

2

假設你使用一個數組來存儲你的Y,你可能想要做一個$推,是這樣的:

var mongo = db.x.findOne(); 
db.x.update({_id:mongo._id}, {$push:{y:{title:"test2"}}}); 

如果你想再次保存整個記錄,你可以做到這一點更接近你試圖什麼:

var mongo = db.x.findOne(); 
mongo.y.push({title:"test2"}); 
db.x.save(mongo); 

但是,$ push可能更好,你可以在一個更新命令中完成。

相關問題