MongoDB đã sử dụng khóa ghi trên toàn bộ quy trình để đảm bảo rằng chỉ có thể thực hiện một thao tác ghi (cập nhật / chèn / xóa) tại một thời điểm. Như vậy, nó tự động giải quyết các vấn đề về đồng thời vì đơn giản là không được phép ghi đồng thời.
Nếu 4 luồng cố gắng thực hiện một thao tác cập nhật, một trong số chúng sẽ thực hiện khóa ghi, hãy cập nhật và mở khóa. Sau đó, một trong 3 người còn lại sẽ lấy khóa, cập nhật nó, v.v.
Đồng thời chỉ phát huy tác dụng nếu thao tác của bạn không thể được gói gọn trong một thao tác ghi duy nhất. Lưu ý rằng đối với usecase phổ biến nhất (tìm một tài liệu, cập nhật nó và lấy phiên bản mới một cách nguyên tử) MongoDB cung cấp lệnh "findAndModify" thực hiện điều đó:http://www.mongodb.org/display/DOCS/findAndModify+Command
CẬP NHẬT:Ngày nay, khóa chi tiết hơn.