如果我有一个像我这样的文档集合:
{
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]
}
无需获取每个文档,复制并更新数组,然后将更新的数组保存回文档...
我提前感谢任何想法!
答案 0 :(得分:0)
哎呀,这里已经开放了JIRA
答案 1 :(得分:0)
您可以在$inc
中包含多个字段,因此当您需要通过索引显式引用每个元素时,您可以这样做:
db.mycoll.update({}, {$inc: {'vals.0': 5, 'vals.1': 5}})