Performing a multi-document transaction in MongoDB using the C# MongoDB Driver
Posted On: 08-Jul-2023 04:33
In MongoDB, a multi-document transaction allows you to perform multiple read and write operations on multiple documents within a single transaction. This ensures the atomicity, consistency, isolation, and durability (ACID) properties of the transaction.
To define a multi-document transaction in MongoDB, we need to use the Session object provided by the MongoDB driver. Here's an example of how you can define a multi-document transaction using the C# MongoDB Driver:
static void Main(string args)
// Create a MongoDB client
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("your_database_name");
var collection1 = database.GetCollection<BsonDocument>("collection1");
var collection2 = database.GetCollection<BsonDocument>("collection2");
// Start a session
using (var session = client.StartSession())
// Define options for the transaction
var options = new TransactionOptions(
// Start a transaction
// Perform operations within the transaction
var document1 = new BsonDocument("name", "John Doe");
var document2 = new BsonDocument("name", "Jane Smith");
// Commit the transaction
catch (Exception ex)
Console.WriteLine("Error occurred during the transaction: " + ex.Message);
// Rollback the transaction
In this example, we create a MongoDB client and retrieve two collections from a database. We start a session using the StartSession method and define transaction options. Within the transaction, we perform multiple operations, such as inserting documents into collection1 and collection2. If any exception occurs, we roll back the transaction using the AbortTransaction method. Otherwise, we commit the transaction using the CommitTransaction method.
Remember to replace "mongodb://localhost:27017" with the connection string for your MongoDB server, "your_database_name" with the name of your database, "collection1" and "collection2" with the names of your collections.
It's important to note that multi-document transactions have some limitations and performance implications. Therefore, it's recommended to design your data model and operations to minimize the need for multi-document transactions whenever possible.
Also, ensure that your MongoDB server version supports multi-document transactions, as they were introduced in MongoDB version 4.0 and later.