0
0
MongoDBquery~30 mins

Multi-document transactions in MongoDB - Mini Project: Build & Apply

Choose your learning style9 modes available
Using Multi-Document Transactions in MongoDB
📖 Scenario: You are managing a simple banking system where users can transfer money between accounts. Each account is stored as a document in a MongoDB collection. To keep the data consistent, you need to update both the sender's and receiver's account balances in a single transaction.
🎯 Goal: Build a multi-document transaction in MongoDB that safely transfers money from one account to another, ensuring both accounts are updated together or not at all.
📋 What You'll Learn
Create two account documents with specific balances
Set up a MongoDB session for transactions
Write a transaction that deducts money from one account and adds it to another
Commit the transaction to save changes atomically
💡 Why This Matters
🌍 Real World
Banking and financial applications require multi-document transactions to keep account balances consistent during transfers.
💼 Career
Understanding MongoDB transactions is important for backend developers working with NoSQL databases to ensure data integrity.
Progress0 / 4 steps
1
Create the accounts collection with two account documents
Create a MongoDB collection called accounts and insert two documents with these exact fields and values: { _id: 1, name: "Alice", balance: 500 } and { _id: 2, name: "Bob", balance: 300 }.
MongoDB
Need a hint?

Use insertMany on the accounts collection to add both documents at once.

2
Start a client session for the transaction
Create a variable called session by starting a client session using client.startSession().
MongoDB
Need a hint?

Use client.startSession() to create a session for transactions.

3
Write the transaction to transfer money
Use session.withTransaction() to run a transaction function that deducts 100 from Alice's balance and adds 100 to Bob's balance using updateOne with { $inc: { balance: -100 } } and { $inc: { balance: 100 } } respectively. Use session as an option in both updates.
MongoDB
Need a hint?

Inside withTransaction, use updateOne twice with the session option to update both accounts.

4
End the session after the transaction
Call session.endSession() to properly close the client session after the transaction.
MongoDB
Need a hint?

Always call endSession() to close the session after finishing the transaction.