2012-03-23 97 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可能更好,你可以在一个更新命令中完成。