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.