MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongodb 4.0-Transaktionsunterstützung für node.js

Wie auch im Kommentar erwähnt, finden Sie die Referenz für Transaktionen auf node-mongodb-native v3.1 API ClientSession . Dies liegt daran, dass Transaktionen einer Sitzung zugeordnet sind. Das heißt, Sie starten eine Transaktion für eine Sitzung. Sie können zu jedem Zeitpunkt höchstens eine offene Transaktion für eine Sitzung haben.

Die Dokumentation für MongoDB-Transaktionen mit mehreren Dokumenten enthält auch Beispiele Node.js Code Ausschnitte. Zum Beispiel:

  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;
  }

Die Referenz für die obigen Methoden finden Sie unter:

Bitte beachten Sie, dass zusätzlich zum MongoDB Node.js-Treiber v3.1 Transaktionen mit mehreren Dokumenten für Replikatsätze verfügbar sind nur auf MongoDB v4.0.x. Transaktionen für Sharding-Cluster sind ab Version v4.2 verfügbar.