仅当值尚未在数组中时, $addToSet operator才将值添加到数组中。如果该值在数组中,则$addToSet不会修改该数组。

我想插入两个不应通过一个请求重复的值。这可能吗?

我试图将数组传递给$addToSet运算符,但它插入了一个数组,而不是该数组中的每个值。

$ mongo test
MongoDB shell version: 2.4.9
connecting to: test
> db.c.insert({a: [1, 2, 3]})
> db.c.find()
{ "_id" : ObjectId("53511a255a82cd559393d840"), "a" : [ 1, 2, 3 ] }
> db.c.update({}, {$addToSet: {a: [2, 4]}})
> db.c.find()
{ "_id" : ObjectId("53511a255a82cd559393d840"), "a" : [ 1, 2, 3, [ 2, 4 ] ] }

最佳答案

the docs for $addToSet :



因此,您应该改用以下代码:

db.c.update({}, {$addToSet: {a: {$each: [2, 4]}}})

关于arrays - 使用$ addToSet Mongo运算符添加多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23154217/

10-09 22:29