Правильно ли предположить, что, поскольку метод save () имеет встроенный контроль версий, вам не нужно беспокоиться о параллельных обновлениях и потере информации, если вы выполняете все обновления своих данных с помощью метода save ()?
Например:
- get do c from db
- apply business logi c: applyBusinessLogi c (do c)
- do c .save ()
Если вы попытаетесь сохранить документ, который был изменен из-за успешного обновления из другого процесса, вы получите ошибку характера Нет соответствия найден документ для идентификатора "5f2bf3059adb51a6f8a3eda3" версии 1 modifiedPaths "alerts" . Итак, вы знаете, что примененная вами бизнес-логика c потенциально больше не действительна, потому что документ был изменен, что дает вам возможность повторить попытку или уладить эту ситуацию.
Я читал различные сообщения, касающиеся optimisti c параллелизм в MongoDB - например, https://jimmybogard.com/document-level-optimistic-concurrency-in-mongodb/. Однако я не понимаю, зачем вам нужно реализовывать такое решение, если встроенный контроль версий уже может этого достичь.