首页/数据/NoSQL 速查/replaceOne 整文档替换
MongoDB99 条

replaceOne 整文档替换

用新文档整体替换匹配到的第一条(_id 保留);替换文档里不允许出现更新操作符,否则报错。

NoSQL 速查数据更新于 2026-10-12
语义删除旧字段,写入给定文档的字段
限制新文档不能含 $ 开头的操作符键

示例

示例
db.users.replaceOne(
  { email: "a@example.com" },
  { email: "a@example.com", name: "Alice", level: 2 }
)
替换会丢掉未列出的全部字段,只想改部分字段时仍应使用 $set。

易错点

  • replaceOne 未匹配时静默返回 matchedCount:0,脚本里要检查返回值
  • 替换后文档结构与既有索引假设可能不再匹配,建模变更要评估索引影响

数据来源与参考

  • MongoDB Manual: db.collection.replaceOne()
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌