未处理的拒绝MongoError:'$ inc'中以美元($)为前缀的字段'$ inc'对存储无效

时间:2019-01-02 08:42:51

标签: node.js mongodb

当我尝试使用$ inc在mongodb中将字段增加指定值时出现以下错误

“未处理的拒绝MongoError:'$ inc'中以美元($)为前缀的字段'$ inc'对于存储无效。”

下面是我的代码

APILog.update({ apiId: 1 }, {$inc:{"dataCount":10}}); 

预先感谢

2 个答案:

答案 0 :(得分:0)

您应该在Mongo Query中将值包括为JSON。可能由于这个原因,您面临一个问题。您能否将查询更新为:

APILog.update({
  "apiId": 1
},
{
  "$inc": {
    "dataCount": 10
  }
})

答案 1 :(得分:0)

我遇到了同样的异常,并且能够解决这种问题。 以下是在mongodb中执行常规命令的语法,并使用示例数据进行了更新:

db.runCommand(
    update: "<replace-with-collection-name>",
    updates: [
        {
            q:{"apiId": 1}, u: {"$inc": {"dataCount": 10}}
        }
    ]
)

如果需要,请按照node.js的规则转义$字符。