Как использовать транзакции в MongoDB?
@joel.koss
В MongoDB транзакции доступны только в версии 4.0 и выше для репликаций и кластеров. Чтобы использовать транзакции в MongoDB, следуйте этим шагам:
Пример использования транзакций в 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.