Как использовать транзакции в MongoDB?

Пользователь

от joel.koss , в категории: Компьютерные технологии , год назад

Как использовать транзакции в MongoDB?

Facebook Vk Ok Twitter Telegram Whatsapp

1 ответ

Пользователь

от willie_grady , год назад

@joel.koss 

В MongoDB транзакции доступны только в версии 4.0 и выше для репликаций и кластеров. Чтобы использовать транзакции в MongoDB, следуйте этим шагам:

  1. Убедитесь, что у вас есть установленная версия MongoDB 4.0 или выше.
  2. Убедитесь, что вы используете репликацию или кластер MongoDB.
  3. Используйте метод startSession() для создания новой сессии MongoDB.
  4. Вызовите метод startTransaction() для начала новой транзакции в этой сессии.
  5. Выполните операции чтения и записи данных в рамках транзакции.
  6. Если все операции завершились успешно, вызовите метод commitTransaction() для сохранения изменений в базе данных.
  7. Если возникла ошибка, вызовите метод abortTransaction() для отмены изменений и отката транзакции.


Пример использования транзакций в MongoDB:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
session = client.startSession()
try:
    session.start_transaction()
    db.collection1.insert_one({"key": "value"})
    db.collection2.update_one({"key": "value"}, {"$set": {"new_key": "new_value"}})
    session.commit_transaction()
except:
    session.abort_transaction()
finally:
    session.end_session()


Здесь мы создаем новую сессию MongoDB, начинаем транзакцию в этой сессии, выполняем две операции записи данных в двух разных коллекциях и, если все прошло успешно, сохраняем изменения в базе данных. Если возникла ошибка, мы отменяем изменения и откатываем транзакцию. Наконец, мы завершаем сессию MongoDB.