$inc(自增)

最后更新:2026-10-09

$inc(自增)

$inc 按指定量增加(或减少)字段的数值。字段不存在时先初始化为增量值。`{ $inc: { views: 1 } }` 给 views 加 1;`{ $inc: { stock: -5 } }` 减 5。它是原子操作,适合计数器、浏览数等场景,避免读-改-写的竞态。

分类更新字段
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

{ $inc: { <字段>: <增量> } }

▶ 示例

请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):

// $inc:浏览数 +1,库存 -5
db.articles.updateOne(
  { _id: 1 },
  { $inc: { views: 1 } }
)
db.products.updateOne(
  { _id: 2 },
  { $inc: { stock: -5 } }
)

运行结果:

// 字段不存在时:views 初始化为 1;stock 减少 5

📌 注意事项

📚 相关教程

❓ 常见问题

Q$inc 能操作字符串吗?
A不能。$inc 只接受数值类型,对字符串字段使用会报错。字符串拼接用 $concat(聚合)或先读后写。
Q$inc 对不存在的字段会怎样?
A如果字段不存在,$inc 会先以 0 为初值再累加,即直接创建该字段并设为增量值。字段类型必须是数值,否则报错。
Q$inc 能减数值吗?
A可以,传负数即可,如 { $inc: { score: -5 } } 使 score 减 5。$inc 是原子操作,适合计数器、排行榜等并发场景。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏