MongoDB is widely known as a NoSQL database that provides flexibility and scalability. Traditionally, NoSQL databases traded transactional guarantees (ACID compliance) for speed and horizontal scaling. However, as MongoDB matured, it introduced multi-document transactions starting from version 4.0 (2018), making it possible to handle complex business use cases that require consistent operations.
In this guide, we’ll explore what transactions are, how they work in MongoDB, use cases, examples, and best practices.
A transaction is a sequence of database operations that are executed as a single unit of work. Either all operations succeed (commit) or none of them do (rollback).
Transactions follow the ACID properties:
startSession()), then a transaction is begun, committed, or aborted.MongoDB always guaranteed atomicity for single-document writes, even before transactions:
db.accounts.updateOne(
{ _id: 1 },
{ $inc: { balance: -100 } }
); This operation is atomic on its own.
Suppose we want to transfer money between two accounts. Both operations must succeed, or none should.
const session = db.getMongo().startSession();
session.startTransaction();
try {
const accountsCollection = session.getDatabase("bank").accounts;
// Deduct from sender
accountsCollection.updateOne(
{ _id: 1 },
{ $inc: { balance: -100 } },
{ session }
);
// Add to receiver
accountsCollection.updateOne(
{ _id: 2 },
{ $inc: { balance: 100 } },
{ session }
);
// Commit transaction
session.commitTransaction();
print("Transaction committed successfully.");
} catch (error) {
// Rollback on error
session.abortTransaction();
print("Transaction aborted due to error: " + error);
} finally {
session.endSession();
}
✅ If either operation fails, the entire transaction rolls back.
MongoDB transactions bridge the gap between NoSQL flexibility and SQL-like consistency. While MongoDB is still optimized for document-based atomic operations, the ability to perform multi-document ACID transactions makes it suitable for enterprise-grade applications in finance, eCommerce, and booking systems.
If you’re building apps where data integrity is mission-critical, transactions in MongoDB are your best friend.
Latest tech news and coding tips.
1. What Is the Golden Ratio? The Golden Ratio, represented by the Greek letter φ (phi), is…
In CSS, combinators define relationships between selectors. Instead of selecting elements individually, combinators allow you to target elements based…
Below is a comprehensive, beginner-friendly, yet deeply detailed guide to Boolean Algebra, complete with definitions, laws,…
Debugging your own code is hard enough — debugging someone else’s code is a whole…
Git is a free, open-source distributed version control system created by Linus Torvalds.It helps developers: Learn how to…
Bubble Sort is one of the simplest sorting algorithms in computer science. Although it’s not…