node.js - MongoDB save() 方法和版本控制
问题描述
假设因为 save() 方法具有内置的版本控制,如果您通过 save() 方法执行对数据的所有更新,您不必担心并发更新和丢失信息是否正确?
例如:
- 从 db 获取文档
- 应用业务逻辑:applyBusinessLogic(doc)
- doc.save()
如果您尝试保存由于从另一个进程成功更新而更改的文档,您将收到自然错误No matching document found for id "5f2bf3059adb51a6f8a3eda3" version 1 modifiedPaths "alerts"。因此,您知道您应用的业务逻辑可能不再有效,因为文档已更改,让您有机会重试或处理这种情况。
我已经阅读了与 MongoDB 中的乐观并发相关的各种帖子 - 例如,https://jimmybogard.com/document-level-optimistic-concurrency-in-mongodb/。但是,当内置版本控制已经可以实现这一点时,我不明白为什么需要实现这样的解决方案。
解决方案
推荐阅读
- hp-alm - 如何从 ALM 中检索用户?
- sql - 使用 CASE 语句将值插入 SQLite 中的多个列
- python - 从 HTML iframe 中检索数据
- c# - Xamarin App SQL Server 连接在发布模式下不起作用,编码 1252
- python - 外键字段'startswith'的Django约束
- java - 从 defaultListModel 中删除时出现 GUI 错误
- kubernetes - 谷歌云 Kubernetes GCE_STOCKOUT
- drake - ManipulationStation 示例中到点云的 RGBD 图像
- ansible - Ansible - 跳过播放回顾
- windows - 我可以通过延迟加载或 LoadLibrary 使用 QT dll 吗?