Ab Version 4.0 unterstützt MongoDB mehrere Dokumenttransaktionen auf Replikatsets und ab Version 4.2 unterstützt es auch verteilte Transaktionen auf Sharded Clusters.
Im Folgenden sind einige Schritte zur Konfiguration der Transaktionsisolation in MongoDB aufgeführt:
1. Starten Sie eine Sitzung:
```javascript
var mySession = db.getMongo().startSession()
```
2. Beginnen Sie eine Transaktion in der Sitzung:
```javascript
mySession.startTransaction( { readConcern: { level: “snapshot” }, writeConcern: { w: “majority” } } )
```
Hierbei bietet Ihnen MongoDB die Möglichkeit, zwei wichtige Optionen zu konfigurieren:
- readConcern: Legt das Isolationsniveau für Leseoperationen fest. “snapshot” garantiert, dass die Transaktion eine konsistente Stellvertretersicht auf die Daten erhält.
- writeConcern: Bestimmt das Niveau der Schreibbestätigung, das die Transaktion erfordert. “majority” bestätigt, dass die Daten von der Mehrheit der datenhaltenden Mitglieder repliziert wurden.
3. Führen Sie die Operationen in der Transaktion aus:
```javascript
var ordersColl = mySession.getDatabase(“test”).getCollection(“orders”);
var inventoryColl = mySession.getDatabase(“test”).getCollection(“inventory”);
```
4. Führen Sie dann die erforderlichen Lese- oder Schreiboperationen aus:
```javascript
ordersColl.insertOne({sku: “abc123”, quantity: 100}, {session: mySession});
inventoryColl.updateOne({sku: “abc123”}, {$inc: {qty: -100}}, {session: mySession});
```
5. Führen Sie einen Commit oder Rollback für die Transaktion aus, basierend auf Ihrer Geschäftslogik:
```javascript
mySession.commitTransaction(); // Commit Transaction
mySession.abortTransaction(); // Rollback Transaction
```
6. Beenden Sie die Sitzung:
```javascript
mySession.endSession();
```
Bitte beachten Sie, dass Transaktionen eine hohe Last auf MongoDB erzeugen können. Verwenden Sie daher Transaktionen nur bei Bedarf und planen Sie Ihre Kapazität entsprechend.
Weitere Informationen zur Verwendung von Transaktionen in MongoDB finden Sie in der offiziellen MongoDB-Dokumentation: https://docs.mongodb.com/manual/core/transactions/