MongoDB - 有一种方法可以用一个命令来包含数组中的所有元素吗?

时间:2015-01-25 13:31:31

标签: mongodb

如果我有一个像我这样的文档集合:

{
    vals : [10, 11]
}

其中vals数组的长度不固定。

有没有办法用一个命令来包含vals数组中的所有元素?

我已经尝试了

db.mycoll.update({}, { $inc : { vals : 5 }}, { multi : true })
// error cannot $inc non-number

db.mycoll.update({}, { $inc : { vals.$ : 5 }}, { multi : true })
// error must specify a field

目标是获得

{
    vals : [15, 16]
}

无需获取每个文档,复制并更新数组,然后将更新的数组保存回文档...

我提前感谢任何想法!

2 个答案:

答案 0 :(得分:0)

哎呀,这里已经开放了JIRA

https://jira.mongodb.org/browse/SERVER-1243

答案 1 :(得分:0)

您可以在$inc中包含多个字段,因此当您需要通过索引显式引用每个元素时,您可以这样做:

 
db.mycoll.update({}, {$inc: {'vals.0': 5, 'vals.1': 5}})