mongodb - mongodb updateMany 查询过滤和更新竞争条件?
问题描述
db.collection.updateMany(filter, update, options)
updateMany
接受查询过滤器。假设此查询过滤器返回 5 个要更新的文档。然后此操作将尝试更新这 5 个文档。如果另一个线程(同时,在此updateMany's
查询过滤器运行并返回 5 个文档供其更新之后):
- 更新这 5 个文档中的一个或多个,那么当这个 updateMany 尝试更新时会返回错误吗?
- 删除这些文档之一,然后当此 updateMany 尝试更新时会返回错误?
- 插入与此 updateMany 的查询过滤器匹配的另一条记录,那么此操作不会更新该记录?
我的理解正确吗?
解决方案
关于一致性的 mongodb 官方文档回答了你的问题。
该示例正是关于updateMany
命令的。
推荐阅读
- javascript - 如何在一个字符串中搜索两个单词?
- c - _具有多个参数的通用函数
- rollbar - 如何在 Rollbar 中接收基于受影响人员的通知
- r - Power BI:包含除绘图图形之外的 htmlwidget
- excel - 使用宏过滤表而不考虑其名称
- flutter - Flutter ScreenUtilInit 和 BoxConstraints
- angular - 刷新 Azure Blob 存储的 SAS 令牌
- java - 自动类型转换如何与 Java 中的“char”一起使用?
- javascript - 当另一个变量也发生变化时如何改变一个变量的值?
- ruby - 我的 Ruby 案例语句语法有什么问题?