我是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"
}
}
});