如何在Mongo的update()函数中使用$ add?

use*_*584 3 function mongodb

我正在尝试更新此文档;

{"dealId" : 201, "commitCount" : 3 }
Run Code Online (Sandbox Code Playgroud)

...我只需要增加commitCount1,所以我试图在update()中使用add []函数,但是我无法让它工作......

db.deal.update( {dealId:201},{$set:{commitCount:{$add:['$commitCount',1]} }} )
Run Code Online (Sandbox Code Playgroud)

我从Mongo得到的错误是not okForStorage,不知道这意味着什么,该字段没有得到更新,

dcr*_*sta 8

该错误意味着您尝试使用MongoDB中无效的字段名称 - 该字段名称中包含带点(".")的字段名称或包含美元符号的字段名称.

$set用于替换整个字段,所以你上面所说的是"用commitCount文档替换字段的内容{$add: ['$commitCount', 1]}",这是一个无效的文档.

要以原子方式递增或递减字段的值(假设字段的当前值为数字),请使用$inc修饰符:

db.deal.update({dealId: 201}, {$inc: {commitCount: 1}})
Run Code Online (Sandbox Code Playgroud)