如何结合使用upsert和$ addToSet?

时间:2018-07-06 08:35:36

标签: node.js mongodb

我想插入一个看起来像这样的文档:

{
    name: "app1",
    theArray: [...unique string elements...]
}

我尝试使用下面的查询执行upsert,但是如果文档不存在,它将以某种方式在数组中创建一个数组。如果在文档不存在时使用$push,则可以很好地创建数组。但是,我需要使用$addToSet来维护数组元素的唯一性。

当前查询:

collection1.upsert({
            name: "app1",
        }, {
            $addToSet: {
                theArray: data // data is an array of ip addresses eg. ["1.1.1", "2.2.2.2"] which is not unique 
            }
        });

在数据库中没有现有文档时执行以上查询:

{
    name: "app-1",
    theArray: [
        //another array that contains the actual data.
    ]
}

有没有一种方法可以让我仅通过一个查询就可以得到这种行为?

0 个答案:

没有答案