Docs 主页 → 开发应用程序 → MongoDB Manual
$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
是单个文档中的原子操作。
从 MongoDB5 0mongod
$inc
{ }
开始。当您将 等更新操作符与空操作数表达式 ( ) 一起使用时, 、 不再引发错误。空更新不会导致任何更改,也不会创建 oplog 条目(意味着该操作为“不操作”)。
例子
创建 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 } }
$min →