首页/数据/NoSQL 速查/updateOne / updateMany 批量更新
MongoDB99 条

updateOne / updateMany 批量更新

updateOne 只改匹配到的第一条,updateMany 修改全部匹配;返回 matchedCount 与 modifiedCount 用于核对影响面。

NoSQL 速查数据更新于 2026-10-12
updateOne仅更新首个匹配
updateMany更新全部匹配
返回值matchedCount / modifiedCount / upsertedId

批量更新示例

批量更新示例
const r = db.orders.updateMany(
  { status: "pending", ts: { $lt: ISODate("2026-09-01T00:00:00Z") } },
  { $set: { status: "expired" } }
)
printjson(r)
modifiedCount 只统计真正发生数值变化的文档,值本来就相同的不会计入。

易错点

  • 执行前先用相同条件 countDocuments 确认命中数量,避免误伤大范围数据
  • 更新条件不命中索引时是逐文档扫描,大集合上是慢操作

数据来源与参考

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