Multi-Document Transaction

MongoDB 🔴 Senior

Définition

Transaction ACID qui garantit l'atomicité sur plusieurs documents et collections. Introduite en MongoDB 4.0 pour les replica sets et 4.2 pour les clusters shardes. MongoDB 8.0, disponible en production depuis le 2 octobre 2024, amélioré le throughput général du moteur de stockage sans changer l'API des transactions (startSession/startTransaction/commitTransaction).

Analogie

Un virement bancaire : le débit ET le crédit doivent réussir ensemble, sinon rien ne se passe.

Exemple de code

const session = client.startSession();
session.startTransaction();
await accounts.updateOne(
  { _id: 'A' }, { $inc: { bal: -100 } }, { session }
);
await accounts.updateOne(
  { _id: 'B' }, { $inc: { bal: 100 } }, { session }
);
await session.commitTransaction();

Cas d'usage

Opérations financières ou tout scénario ou plusieurs documents doivent être modifies de façon atomique.

Anti-pattern

Utiliser des transactions pour tout au lieu de profiter du modèle de document embarque de MongoDB.
#sgbd#interview#database#mongodb

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre