Seperti yang disebutkan di komentar juga, Anda dapat menemukan referensi untuk transaksi di node-mongodb-native v3.1 API ClientSession . Ini karena transaksi terkait dengan sesi. Artinya, Anda memulai transaksi untuk satu sesi. Pada waktu tertentu, Anda dapat memiliki paling banyak satu transaksi terbuka untuk satu sesi.
Dokumentasi untuk Transaksi multi-dokumen MongoDB
juga berisi contoh Node.js
potongan kode. Misalnya:
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;
}
Referensi untuk metode di atas dapat ditemukan di:
Selain driver MongoDB Node.js v3.1, harap perhatikan bahwa transaksi multi-dokumen tersedia untuk set replika hanya di MongoDB v4.0.x. Transaksi untuk sharded cluster tersedia mulai dari versi v4.2.