用于添加到数组(如果不存在)的MongoDB查询

用于添加到数组(如果不存在)的MongoDB查询,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我是MongoDB的新手,我想知道如果不存在嵌入式文档,是否有任何方法将其添加到数组中。 假设我有一个名为产品的集合: { _id: "123", name: "Hair-Dryer", locations: [{ code: "MA", name: "Massachusetts" }, {

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

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

{
    _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对该数组不做任何操作

试试这个:

db.locations.updateMany({}{
$addToSet:{
地点:{
代码:“IL”,
名称:“伊利诺伊州”
}
}
});