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

mongodb 4.0 supporto per le transazioni per node.js

Come accennato anche nel commento, puoi trovare il riferimento per le transazioni su node-mongodb-native v3.1 API ClientSession . Questo perché le transazioni sono associate a una sessione. Cioè, si avvia una transazione per una sessione. In qualsiasi momento, puoi avere al massimo una transazione aperta per una sessione.

La documentazione per Transazioni multi-documento MongoDB contiene anche esempi Node.js frammenti di codice. Ad esempio:

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

Il riferimento per i metodi di cui sopra può essere trovato su:

Oltre al driver MongoDB Node.js v3.1, tieni presente che le transazioni multi-documento sono disponibili per set di repliche solo su MongoDB v4.0.x. Le transazioni per i cluster partizionati sono disponibili a partire dalla versione v4.2.