sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb 4.0 transaktionsstöd för node.js

Som nämnts i kommentaren också, kan du hitta referensen för transaktioner på node-mongodb-native v3.1 API ClientSession . Detta beror på att transaktioner är kopplade till en session. Det vill säga du startar en transaktion för en session. Vid varje given tidpunkt kan du ha högst en öppen transaktion för en session.

Dokumentationen för MongoDB-transaktioner med flera dokument innehåller även exempel Node.js kodavsnitt. Till exempel:

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

Referensen för metoderna ovan finns på:

Utöver MongoDB Node.js drivrutin v3.1, observera att transaktioner med flera dokument är tillgängliga för replikuppsättningar endast på MongoDB v4.0.x. Transaktioner för delade kluster är tillgängliga från och med version v4.2.




  1. Fel vid uppgradering av Mongodb från 3.2 till 3.6

  2. TypeError på statisk metod för mongoose-modellen

  3. Mongo:hitta underdokument utan punktnotering

  4. Lagra ett djupkatalogträd i en databas