Метод MongoDB save () и контроль версий - PullRequest
0 голосов
/ 06 августа 2020

Правильно ли предположить, что, поскольку метод save () имеет встроенный контроль версий, вам не нужно беспокоиться о параллельных обновлениях и потере информации, если вы выполняете все обновления своих данных с помощью метода save ()?

Например:

  1. get do c from db
  2. apply business logi c: applyBusinessLogi c (do c)
  3. do c .save ()

Если вы попытаетесь сохранить документ, который был изменен из-за успешного обновления из другого процесса, вы получите ошибку характера Нет соответствия найден документ для идентификатора "5f2bf3059adb51a6f8a3eda3" версии 1 modifiedPaths "alerts" . Итак, вы знаете, что примененная вами бизнес-логика c потенциально больше не действительна, потому что документ был изменен, что дает вам возможность повторить попытку или уладить эту ситуацию.

Я читал различные сообщения, касающиеся optimisti c параллелизм в MongoDB - например, https://jimmybogard.com/document-level-optimistic-concurrency-in-mongodb/. Однако я не понимаю, зачем вам нужно реализовывать такое решение, если встроенный контроль версий уже может этого достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...