$inc
定义
$inc
的
$inc
运算符可以将字段增加一个指定的值。
兼容性
您可以使用$inc
在以下环境中部署
MongoDB Atlas:云中MongoDB部署的全托管服务
MongoDB Enterprise:基于订阅的自托管MongoDB版本
MongoDB Community:源代码可用的,免费使用并自托管的MongoDB版本
语法
$inc
运算符具有以下形式
{ $inc: { <field1>: <amount1>, <field2>: <amount2>, ... } }
要指定内嵌文档或数组中的<field>
,请使用点表示法。
行为
从MongoDB 5.0版本开始,更新运算符按照基于字符串的名称的字典顺序处理文档字段。具有数字名称的字段按数字顺序处理。有关详细信息,请参阅更新运算符行为。
$inc
运算符接受正数和负数。
如果字段不存在,$inc
会创建该字段并将其设置为指定的值。
在具有null值的字段上使用$inc
运算符将生成错误。
$inc
是单个文档内的原子操作。
从MongoDB 5.0版本开始,当使用如$inc
这样的更新运算符与空的操作数表达式({}
)时,mongod
不再抛出错误。空更新不会产生变化,也不会创建操作日志条目(意味着该操作是无效的)。
示例
创建products
集合
db.products.insertOne( { _id: 1, sku: "abc123", quantity: 10, metrics: { orders: 2, ratings: 3.5 } } )
以下updateOne()
操作使用$inc
运算符来
将
"metrics.orders"
字段增加1将
quantity
字段增加-2(这将减少quantity
)
db.products.updateOne( { sku: "abc123" }, { $inc: { quantity: -2, "metrics.orders": 1 } } )
更新后的文档将类似于
{ _id: 1, sku: 'abc123', quantity: 8, metrics: { orders: 3, ratings: 3.5 } }