Multi-Document ACID Transactions

🍁 MongoDBLesson 13Advanced

MongoDB supports multi-document transactions inside Replica Sets, enabling standard ACID validation patterns across multiple collections.

1 Running Transactions in Node.js
JavaScript — Session Transaction block
const session = await mongoose.startSession();
session.startTransaction();
try {
  # Deduct user balance
  await Account.updateOne({ _id: user1 }, { $inc: { balance: -100 } }, { session });
  # Add payee balance
  await Account.updateOne({ _id: user2 }, { $inc: { balance: 100 } }, { session });
  
  await session.commitTransaction();
} catch (error) {
  await session.abortTransaction();
} finally {
  session.endSession();
}
2 Code Challenge
Challenge: Write a transaction script representing order completion: inserting a record into an orders collection, and updating product stock in product collection atomically.