Như đã đề cập trên nhận xét, bạn có thể tìm thấy tham chiếu cho các giao dịch trên node-mongodb-native v3.1 API ClientSession . Điều này là do các giao dịch được liên kết với một phiên. Đó là, bạn bắt đầu giao dịch cho một phiên. Tại bất kỳ thời điểm nào, bạn có thể có nhiều nhất một giao dịch đang mở cho một phiên.
Tài liệu cho Giao dịch nhiều tài liệu MongoDB
cũng chứa các ví dụ Node.js
đoạn mã. Ví dụ:
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;
}
Tham khảo cho các phương pháp trên có thể được tìm thấy trên:
- ClientSession.startTransaction ()
- ClientSession.commitTransaction ()
- ClientSession.abortTransaction ()
Ngoài trình điều khiển MongoDB Node.js v3.1, xin lưu ý rằng các giao dịch đa tài liệu có sẵn cho bộ bản sao chỉ trên MongoDB v4.0.x. Các giao dịch cho các cụm phân đoạn có sẵn bắt đầu từ phiên bản v4.2.