$ push仅修改第一个文档

时间:2014-04-26 13:24:49

标签: mongodb mongodb-query

我有一个问题:

db.locations.find({
    "source_id": {
        "$in": [ "1", "3", "4" ]
    }
})

返回3份文件。

我想使用以下命令修改这些文档:

db.locations.update(
    {
        "source_id": {
           "$in": ["1", "3", "4"]}
    }, 
    { "$push": {"services": "IN_EUR"} }
)

但我只更新了第一份文件。这是为什么? $push上的文档未说明<query>应返回单个文档。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:3)

如果您打算更新多个文档,请添加multi参数:

db.locations.update(
    {
        "source_id": {
           "$in": ["1", "3", "4"]}
    }, 
    { "$push": {"services": "IN_EUR"} },
    { "multi": true }
)