Поддерживает MongoDB транзакции
Python
Senior
Без компании
Поддерживает MongoDB транзакции
Ответы
Да, MongoDB поддерживает транзакции начиная с версии 4.0 для реплика-сетов и с 4.2 для шардированных кластеров. Транзакции работают как для одной операции, так и для нескольких операций в рамках одного или нескольких документов/коллекций.
Пример использования транзакции в Python с драйвером PyMongo:
```
with client.start_session() as session:
session.start_transaction()
try:
db.collection1.insert_one({"key": "value"}, session=session)
db.collection2.update_one({"filter": 1}, {"$set": {"key": "value"}}, session=session)
session.commit_transaction()
except Exception as e:
session.abort_transaction()
print("Transaction aborted:", e)
```
Важные особенности:
- Транзакции поддерживают ACID на уровне документа
- Максимальная длительность транзакции - 60 секунд (настраивается)
- Влияют на производительность, поэтому не рекомендуются для высоконагруженных операций
- Требуют storage engine WiredTiger