$set(设置字段)

最后更新:2026-10-09

$set(设置字段)

$set 是更新操作符,用于设置(或覆盖)文档中一个或多个字段的值。字段不存在时自动创建,可用点路径更新嵌套字段。它是 MongoDB 更新操作中最常用的操作符。`{ $set: { "price": 19.99, "inStock": true } }` 一次设置多个字段。

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

📝 语法

{ $set: { <字段1>: <值1>, <字段2>: <值2>, ... } }

▶ 示例

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

// $set:设置多个字段
db.products.updateOne(
  { _id: 1 },
  { $set: { price: 19.99, inStock: true } }
)

运行结果:

// 返回 updatedCount: 1,文档 price 变为 19.99、inStock 变为 true

📌 注意事项

📚 相关教程

❓ 常见问题

Q$set 和 $inc 能一起用吗?
A能。$set 设置/覆盖固定值,$inc 做增量运算,二者互不冲突,可出现在同一个更新文档中(同一字段除外)。
Q$set 和直接赋值 db.collection.update 有什么不同?
A$set 只更新指定字段,不影响文档其他字段;配合 $unset 可以精细控制。而直接替换整个文档需要 replaceOne,会丢失未声明的字段。
Q$set 会覆盖已有字段吗?
A会。$set 对已存在字段直接覆盖为新值,对不存在字段则新建。它是幂等的:重复执行相同 $set 结果不变。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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