gpt4 book ai didi

shell - MongoDB 添加额外的嵌入文档而不是覆盖它

转载 作者:可可西里 更新时间:2023-11-01 09:32:19 25 4
gpt4 key购买 nike

我有一个 MongoDocument X,它有一些 MongoEmbeddedDocument Y 的实例。

我现在想在我的 X 集合中添加一个额外的嵌入文档 Y。我尝试了以下代码:

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

问题是那段代码会删除我拥有的 y 个嵌入式文档的整个集合。有什么办法可以添加一个而不删除现有的吗?

最佳答案

假设您正在使用一个数组来存储您的 y,您可能想要执行 $push,类似于:

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

关于shell - MongoDB 添加额外的嵌入文档而不是覆盖它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com