文档菜单
文档首页
/
MongoDB 手册
/ / / /

$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 }
}

提示

另请参阅

返回

$currentDate