sql >> Databáze >  >> NoSQL >> MongoDB

podpora transakcí mongodb 4.0 pro node.js

Jak je také uvedeno v komentáři, odkaz na transakce najdete na node-mongodb-native v3.1 API ClientSession . Důvodem je, že transakce jsou spojeny s relací. To znamená, že zahájíte transakci pro relaci. V danou chvíli můžete mít na relaci maximálně jednu otevřenou transakci.

Dokumentace pro transakce s více dokumenty MongoDB obsahuje také příklady Node.js úryvky kódu. Například:

  session.startTransaction({
    readConcern: { level: 'snapshot' },
    writeConcern: { w: 'majority' }
  });

  const employeesCollection = client.db('hr').collection('employees');
  const eventsCollection = client.db('reporting').collection('events');

  await employeesCollection.updateOne(
    { employee: 3 },
    { $set: { status: 'Inactive' } },
    { session }
  );
  await eventsCollection.insertOne(
    {
      employee: 3,
      status: { new: 'Inactive', old: 'Active' }
    },
    { session }
  );

  try {
    await commitWithRetry(session);
  } catch (error) {
    await session.abortTransaction();
    throw error;
  }

Odkaz na výše uvedené metody lze nalézt na:

Kromě ovladače MongoDB Node.js v3.1 mějte na paměti, že pro sady replik jsou k dispozici transakce s více dokumenty pouze na MongoDB v4.0.x. Transakce pro sdílené clustery jsou k dispozici počínaje verzí v4.2.




  1. PyMongo a Flask's Jsonify obsahuje úniková lomítka

  2. MongoDB $toDate

  3. Uložení objektu Mongoose do dvou kolekcí

  4. Aktualizace MongoDB (vložení seznamu položek do pole)