Nếu bạn thực sự phải có các giao dịch trên nhiều loại tài liệu (trong các bộ sưu tập riêng biệt), phương tiện để đạt được điều này là với một bảng duy nhất lưu trữ các hành động cần thực hiện.
db.actions.insert(
{ actions: [{collection: 'players', _id: 'p1', update: {$set : {name : 'bob'} } },
{collection: 'stories', _id: 's1', update: {$set : {location: 'library'} } }], completed: false }, callback);
Phần chèn này là nguyên tử và tất cả được thực hiện cùng một lúc. Sau đó, bạn có thể thực hiện các lệnh trong bộ sưu tập 'hành động' và đánh dấu chúng là hoàn thành hoặc xóa chúng khi bạn hoàn thành chúng, gọi lệnh gọi lại ban đầu của bạn khi tất cả chúng đã hoàn thành. Điều này chỉ hoạt động nếu vòng lặp xử lý hành động của bạn là thứ duy nhất cập nhật db. Tất nhiên, bạn sẽ phải ngừng sử dụng mongoose, nhưng bạn làm điều đó càng sớm thì bạn sẽ càng giỏi.