Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • MongoDB Documentation21টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • কেন Mongoose?
  • Installation
  • Connection
  • Schema
  • Model
  • Document
  • CRUD
  • Querying
  • Validation
  • Middleware
  • Population
  • Aggregation
  • Virtuals
  • Indexes
  • Error Handling
  • Update Operators
  • Transactions
  • Express Integration
  • Blog Project
  • Best Practices
  1. Docs
  2. MongoDB
  3. Transactions (Multi-Document ACID)
MongoDBAdvanced

Transactions (Multi-Document ACID)

Session দিয়ে একাধিক document-এর atomic পরিবর্তন: startTransaction, commit, abort — বাংলায়।

8টি অংশবাংলা ভাষায়

Transaction কবে দরকার

  • টাকা ট্রান্সফার — এক account থেকে subtract, অন্য account-এ add
  • Order + stock + payment — তিনটা-ই সফল বা তিনটাই fail
  • একাধিক collection/document যেখানে পারস্পরিক নির্ভরতা গুরুত্বপূর্ণ

Session + transaction

Fund transferjs
js
async function transfer(fromId, toId, amount) {
  const session = await mongoose.startSession();
  session.startTransaction();

  try {
    // session দেওয়া অপারেশন atomic — সব সফল না হলে কেউই save হয় না
    await Account.updateOne(
      { _id: fromId },
      { $inc: { balance: -amount } },
      { session }
    );

    await Account.updateOne(
      { _id: toId },
      { $inc: { balance: amount } },
      { session }
    );

    await session.commitTransaction();
    console.log("Success");
  } catch (err) {
    await session.abortTransaction();
    console.error("Rolled back:", err.message);
    throw err;
  } finally {
    session.endSession();
  }
}

save() সহ transaction

create + save sessionjs
js
const session = await mongoose.startSession();
session.startTransaction();

try {
  const user = new User({ name: "রহিম", email: "rahim@example.com" });
  await user.save({ session });

  const profile = new Profile({ user: user._id, bio: "..." });
  await profile.save({ session });

  await session.commitTransaction();
} catch (err) {
  await session.abortTransaction();
} finally {
  session.endSession();
}

Transaction limit

Transaction-এর শর্ত

Transaction চলে Replica Set/Atlas-এ, standalone MongoDB-তে নয়। Sessions ৬০ সেকেন্ড inactive থাকলে timeout হয়। ছোট, দ্রুত কাজের জন্য transaction এড়িয়ে — শুধু সত্যিই atomic-এর দরকার হলে ব্যবহার করুন।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরUpdate Operators ($set, $inc, $push…)পরেরExpress + Mongoose REST API
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com