MongoDB, étant une base de données NoSQL, ne prenait pas en charge les transactions multi-documents jusqu'à la version 4.0. Cependant, à partir de la version 4.0, MongoDB a introduit la prise en charge des transactions multi-documents, permettant aux développeurs d'effectuer des opérations complexes sur plusieurs documents de manière atomique. Dans cette section, nous explorerons l'implémentation des transactions dans MongoDB.

Comprendre les transactions

Dans une base de données, une transaction est une séquence d'opérations qui forment une unité logique de travail. Les transactions permettent aux utilisateurs d'effectuer plusieurs modifications dans une base de données en une seule opération. Ceci est important pour maintenir la cohérence et l'intégrité des données dans une base de données.

Démarrer une transaction

Pour démarrer une transaction dans MongoDB, vous devez d'abord démarrer une session. Une session est un objet qui regroupe les opérations et permet de les envoyer à la base de données en un seul lot. Pour démarrer une session, vous pouvez utiliser la méthode startSession() de l'objet MongoClient.

let session = client.startSession();

Une fois la session démarrée, vous pouvez démarrer une transaction en utilisant la méthode startTransaction() de la session.

session.startTransaction();

Effectuer des opérations dans une transaction

Après avoir démarré une transaction, vous pouvez effectuer diverses opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) sur divers documents de la transaction. Pour ce faire, vous devez passer session en option pour chaque opération.

collection.insertOne({ a: 1 }, { session }); collection.updateOne({ a : 1 }, { $set : { b : 1 } }, { session });

Confirmer une transaction

Après avoir effectué toutes les opérations nécessaires, vous pouvez valider la transaction à l'aide de la méthode commitTransaction() de la session. Cela appliquera toutes les modifications apportées à la transaction à la base de données.

session.commitTransaction();

Annuler une transaction

Si quelque chose ne va pas pendant la transaction et que vous décidez de ne pas appliquer les modifications, vous pouvez annuler la transaction à l'aide de la méthode abortTransaction() de la session. Cela annulera toutes les modifications apportées à la transaction.

session.abortTransaction();

Conclusion

Les transactions dans MongoDB offrent un moyen puissant d'effectuer des opérations complexes sur plusieurs documents de manière atomique. Cependant, ils ajoutent également une surcharge importante et doivent être utilisés avec parcimonie. Dans de nombreux cas, les fonctionnalités d'atomicité au niveau du document de MongoDB, telles que les opérations findAndModify et les mises à jour complexes, peuvent suffire à vos besoins.

Il est important de noter que les transactions dans MongoDB nécessitent la réplication des données, ce qui signifie qu'elles ne sont pas disponibles dans une seule instance MongoDB. De plus, les transactions ont un délai d'attente de 60 secondes pour empêcher les opérations de longue durée de verrouiller le système.

Enfin, même si les transactions constituent un ajout bienvenu à MongoDB, elles ne constituent pas une solution miracle. Comme toujours, une conception minutieuse du schéma et la compréhension des besoins de votre application sont essentielles à l'utilisation efficace des transactions.

Répondez maintenant à l’exercice sur le contenu :

Quand MongoDB a-t-il introduit la prise en charge des transactions multi-documents ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Gestion des utilisateurs et des rôles dans MongoDB

Page suivante de lebook gratuit :

71Gestion des utilisateurs et des rôles dans MongoDB

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte