Skip to content

MongoDBda tranzaksiyalar

Chop etilgan: at 07:30 PM

MongoDB-da tranzaksiyalar bir nechta hujjatlar (documents) ustida atomiklikni ta’minlash uchun ishlatiladi. Ya’ni, tranzaksiya ichidagi barcha operatsiyalar to’liq bajarilishi yoki umuman bajarilmasligi kerak.

Tranzaksiya ishlash mexanizmi

MongoDB tranzaksiyalarni replicated sharding yoki single replica set da qo‘llab-quvvatlaydi. Barcha operatsiyalar session ichida bajarilishi kerak va startTransaction metodi bilan boshlanadi.

Tranzaksiya ishlash jarayoni

Tranzaksiya misoli

import { MongoClient } from "mongodb";

const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);

async function runTransaction() {
  const session = client.startSession();
  try {
    session.startTransaction();

    const usersCollection = client.db("mydb").collection("users");
    const ordersCollection = client.db("mydb").collection("orders");

    await usersCollection.updateOne(
      { _id: 1 },
      { $inc: { balance: -50 } },
      { session }
    );

    await ordersCollection.insertOne(
      { userId: 1, amount: 50, status: "pending" },
      { session }
    );

    await session.commitTransaction();
    console.log("Transaction committed successfully");
  } catch (error) {
    await session.abortTransaction();
    console.error("Transaction aborted due to error:", error);
  } finally {
    await session.endSession();
    await client.close();
  }
}

runTransaction();

Tranzaksiya xatoliklarni qo‘lga olish

Agar tranzaksiya davomida xatolik yuz bersa, u avtomatik ravishda bekor qilinishi kerak. Buning uchun abortTransaction qo‘llaniladi.

Tranzaksiya qo‘llanilishi lo‘yiq bo‘lgan holatlar

Xulosa

MongoDB tranzaksiyalari ko‘p hujjatli operatsiyalarda ma’lumotlarning yaxlitligini ta’minlash uchun qulay vositadir. Uni ishlatishda session va error handling muhim o‘rin tutadi.


Oldingi maqola
JavaScriptning backend qiroli