如果不存在添加到数组的MongoDB查询



我是MongoDB的新手,想知道如果嵌入式文档不存在,是否有任何方法可以将其添加到数组中

假设我有一个名为products:的集合

{
_id: "123",
name: "Hair-Dryer",
locations: [{
code: "MA",
name: "Massachusetts"
},
{
code: "IL",
name: "illinois"
}
]
}, {
_id: "456",
name: "Toaster",
locations: [{
code: "MA",
name: "Massachusetts"
}, ]
}

现在让我们说我想添加:

{
code: "IL",
name: "illinois"
}

只发给那些没有它们的文件请注意,我不知道哪些文档有我需要的数据,哪些没有我需要弄清楚。

如何在MongoDB中编写这样的查询?

$addToSet运算符向数组添加一个值,除非该值已经存在,在这种情况下$addToSet对该数组不执行任何操作。

试试这个:

db.locations.updateMany({}, {
$addToSet: {
locations: {
code: "IL",
name: "illinois"
}
}
});

最新更新