Khi trường hợp sử dụng của bạn yêu cầu các giao dịch kéo dài nhiều tài liệu, MongoDB thường không phù hợp với nó, vì nó không hỗ trợ các hoạt động nguyên tử khi nhiều tài liệu bị ảnh hưởng.
Một giải pháp khả thi là hai pha-cam kết mô hình.
Về cơ bản, điều đó có nghĩa là trước tiên bạn thêm mô tả những gì bạn muốn làm vào mỗi tài liệu như một trường bổ sung cho nó. Sau đó, bạn thực hiện một hoạt động nguyên tử trên mỗi tài liệu áp dụng hành động đó và xóa mô tả. Mỗi bước trong số này được xác nhận bằng cách truy vấn tài liệu sau đó và mỗi bước của giao dịch được ghi lại bằng tài liệu thứ 3 trong bộ sưu tập bổ sung các giao dịch đang chờ xử lý. Điều này cho phép bạn kiểm tra các giao dịch đang chờ xử lý và khôi phục chúng.
Phương pháp này khó thực hiện và có chi phí đáng kể. Trước khi thực hiện điều này, bạn thực sự nên cân nhắc nếu thực sự có lý do chính đáng để không sử dụng hệ thống cơ sở dữ liệu có hỗ trợ giao dịch gốc.