我想插入一个看起来像这样的文档:
{
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.
]
}
有没有一种方法可以让我仅通过一个查询就可以得到这种行为?