sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb 4.0 transaktionsunderstøttelse for node.js

Som også nævnt i kommentaren, kan du finde referencen for transaktioner på node-mongodb-native v3.1 API ClientSession . Dette skyldes, at transaktioner er knyttet til en session. Det vil sige, at du starter en transaktion for en session. På ethvert givet tidspunkt kan du højst have én åben transaktion for en session.

Dokumentationen for MongoDB multi-dokument transaktioner indeholder også eksempler på Node.js kodestykker. For eksempel:

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

Referencen til metoderne ovenfor kan findes på:

Ud over MongoDB Node.js driver v3.1, bemærk venligst, at multi-dokument transaktioner er tilgængelige for replika sæt kun på MongoDB v4.0.x. Transaktioner for splittede klynger er tilgængelige fra og med version v4.2.




  1. Vil du dele sessioner med redis og pas på et underdomæne?

  2. Hvorfor kan mit Redis Lua-script ikke atomisk opdatere nøgler på forskellige Redis Cluster-noder?

  3. MongoDB $anyElementTrue

  4. Meltdown Performance Impact on MongoDB:AWS, Azure &DigitalOcean