sql >> Database >  >> NoSQL >> MongoDB

mongodb 4.0 transacties ondersteuning voor node.js

Zoals ook vermeld in de opmerking, kun je de referentie voor transacties vinden op node-mongodb-native v3.1 API ClientSession . Dit komt omdat transacties aan een sessie zijn gekoppeld. Dat wil zeggen, u start een transactie voor een sessie. U kunt op elk moment maximaal één openstaande transactie voor een sessie hebben.

De documentatie voor MongoDB multi-document transacties bevat ook voorbeelden Node.js code fragmenten. Bijvoorbeeld:

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

De referentie voor de bovenstaande methoden is te vinden op:

Houd er rekening mee dat, naast MongoDB Node.js-stuurprogramma v3.1, transacties met meerdere documenten beschikbaar zijn voor replicasets alleen op MongoDB v4.0.x. Transacties voor shard-clusters zijn beschikbaar vanaf versie v4.2.




  1. MongoDB gelijktijdige update naar hetzelfde document gedraagt ​​zich niet atomair

  2. Hoe maak je veilig verbinding met Heroku Redis via de opdrachtregel?

  3. Mongoimport gebruiken om csv . te importeren

  4. (Hoe) kan aggregatie() een index breken?