Както беше споменато и в коментара, можете да намерите справката за транзакции на node-mongodb-native v3.1 API ClientSession . Това е така, защото транзакциите са свързани със сесия. Тоест започвате транзакция за сесия. Във всеки един момент можете да имате най-много една отворена транзакция за сесия.
Документацията за MongoDB многодокументни транзакции
също така съдържа примери Node.js
кодови фрагменти. Например:
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;
}
Препратката към методите по-горе може да бъде намерена на:
В допълнение към драйвера MongoDB Node.js v3.1, имайте предвид, че транзакциите с множество документи са налични за набори реплики само на MongoDB v4.0.x. Транзакциите за разделени клъстери са достъпни, започвайки от версия v4.2.