首页 > 解决方案 > MongoDB save() 方法和版本控制

问题描述

假设因为 save() 方法具有内置的版本控制,如果您通过 save() 方法执行对数据的所有更新,您不必担心并发更新和丢失信息是否正确?

例如:

  1. 从 db 获取文档
  2. 应用业务逻辑:applyBusinessLogic(doc)
  3. doc.save()

如果您尝试保存由于从另一个进程成功更新而更改的文档,您将收到自然错误No matching document found for id "5f2bf3059adb51a6f8a3eda3" version 1 modifiedPaths "alerts"。因此,您知道您应用的业务逻辑可能不再有效,因为文档已更改,让您有机会重试或处理这种情况。

我已经阅读了与 MongoDB 中的乐观并发相关的各种帖子 - 例如,https://jimmybogard.com/document-level-optimistic-concurrency-in-mongodb/。但是,当内置版本控制已经可以实现这一点时,我不明白为什么需要实现这样的解决方案。

标签: node.jsmongodbmongooseconcurrency

解决方案


推荐阅读