在MongoDB中的更新查询时出错

时间:2018-01-03 13:31:09

标签: mongodb

我在这里尝试实现的是更新包含给定字段集的一组给定文档,包括一个,另一个或两者。

我实际上有两个问题......

MongoDB可以处理正在处理的文档中不存在的字段吗?就像我在这里想要实现的那样,将两个字段相加,如果一个为空,则只需求0。

另一个是我在查询中得到的错误......

db.getCollection('my_collection').update({'$or': [{
        'a_field': 1}, {
        'another_field': 1
    }
    ]},
        {'$set': {
            'another_field': {
                '$sum': [
                    '$a_field', '$another_field'
                ]
            }
        },
            '$unset': {'a_field': ''}})

给我以下错误......

The dollar ($) prefixed field '$sum' in 'another_field.$sum' is not valid for storage.

1 个答案:

答案 0 :(得分:0)

mongodb中没有$sum UPDATE运算符,因此出错。您感到困惑的是聚合运算符,只能用于以一种方式查询数据。 此外,您正在查看的运算符是$inc,但是您无法以您尝试的方式更新文档。 mongodb有这个功能的OPEN票。 Ticket

希望这澄清

有关实现您的目标的更多信息,请参阅此answer