Maison >base de données >MongoDB >Comment utiliser les transactions dans MongoDB?
Les transactions MongoDB, introduites avec la version 4.0, fournissent des propriétés d'atomicité, de cohérence, d'isolement et de durabilité (acide) pour les opérations en une seule session. Ils s'assurent qu'un ensemble d'opérations réussisse tous ou tous échouent ensemble, empêchant les mises à jour partielles et maintient l'intégrité des données. Les transactions sont principalement gérées à l'aide de l'objet session
. Voici une ventilation de la façon de les utiliser:
1. Décitez une transaction: vous commencez une transaction en créant une session client et en démarrant une transaction au sein de cette session. Cela se fait généralement en utilisant les capacités du conducteur MongoDB. Par exemple, dans le pilote Python:
<code class="python">from pymongo import MongoClient, ReadPreference client = MongoClient('mongodb://localhost:27017/') db = client.mydatabase session = client.start_session() with session.start_transaction(): # Perform operations within the transaction result1 = db.collection1.insert_one({"name": "Example"}, session=session) result2 = db.collection2.update_one({"key": "value"}, {"$set": {"field": "updated"}}, session=session) # ... more operations ... session.commit_transaction() # Or session.abort_transaction() if an error occurs client.close()</code>
2. Effectuer des opérations: toutes les opérations destinées à faire partie de la transaction doivent être exécutées dans le with session.start_transaction():
Block et transmettre explicitement l'objet session
à chaque opération. Cela garantit qu'ils font tous partie de la même unité atomique.
3. Commit ou avorter: une fois toutes les opérations terminées, vous engagez la transaction à l'aide de session.commit_transaction()
pour apporter les modifications permanentes ou abandonner la transaction à l'aide session.abort_transaction()
pour annuler les modifications. La gestion des erreurs est cruciale; Si une opération dans le bloc échoue, la transaction interviendra automatiquement, sauf si c'est géré explicitement.
Pour maximiser l'efficacité et l'efficacité des transactions MongoDB, suivez ces meilleures pratiques:
with
des déclarations) pour garantir le nettoyage. Oui, les transactions MongoDB peuvent s'étendre sur plusieurs collections dans la même base de données. Comme le montre l'exemple ci-dessus, les opérations sur collection1
et collection2
font tous deux partie de la même transaction. La clé est que toutes les opérations du bloc de transaction doivent être dans la même base de données. Les transactions ne peuvent pas courir plusieurs bases de données.
Bien que puissants, les transactions MongoDB ont certaines limites:
N'oubliez pas de consulter la documentation officielle MongoDB pour les informations les plus à jour et les meilleures pratiques liées aux transactions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!