Атомарная операция замены для документа монго

Я настраиваю приложение Python, которое использует mongodb (через pymongo).

Мне нужно перезаписать содержимое всего документа. Это можно сделать с помощью Обновить или заменять. Тем не менее, документация mongo не содержит явных сведений об атомарности этих операций — говорится только о том, что отдельные операции записи являются атомарными, без объяснения того, используется ли при обновлении или замене несколько операций записи.

Кто-нибудь точно знает, является ли любая из этих операций полностью атомарной?

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
0
203
1

Ответы 1

find_and_modify устарел в драйвере pymongo. Вместо этого используйте один из:

  • find_one_and_delete
  • find_one_and_replace
  • find_one_and_update

Первоначальный find_and_modify мог изменить несколько документов, что, вероятно, не то, что было задумано, и также не атомарно.

Чтобы увидеть действительно совместимую с ACID последовательность изменений в MongoDB, посмотрите ACID-транзакции MongoDB. Поддерживается начиная с MongoDB 4.0, выпущенного в прошлом году.

Другие вопросы по теме