给出MongoDB中的文档结构
{
_id: "5d305779fc12b358849fae2c",
externalID: 551,
title: title,
owners: ["John"]
}
我想根据externalID使用upsert执行更新。因此,如果externaID与新文档中的相同,则应仅更新所有者字段并添加新所有者,如果找不到,则创建新文档。
结果应如下所示:
{
_id: "5d305779fc12b358849fae2c",
externalID: 551,
title: title,
owners: ["John", "new name"]
}
我正在尝试在一个查询中执行此操作,因为数据来自API,用户/所有者拥有多个记录。 是否可以或应该搜索每个externalID,如果可以,请更新 相应地?
谢谢。
答案 0 :(得分:0)
在@Rakshith Sm的评论的帮助下将其排序出来
db.collection("my_collection").updateOne(
{ _externalID: y_id},
{
$set: {
title: my_title,
},
$addToSet: { owner: new_owner}
},
{ upsert: true }
);
$ addToSet注意可能的重复项