Không có cách nào để thực hiện việc này hiện đang sử dụng thao tác cập nhật thường xuyên vì những lý do bạn đã lưu ý.
Công việc duy nhất mà bạn có thể sử dụng vào lúc này là thêm lập phiên bản vào tài liệu của mình và sử dụng khóa lạc quan bằng cách đọc tài liệu, tìm các phần tử thích hợp để sửa đổi trong ứng dụng của bạn, thay đổi giá trị của chúng và sau đó sử dụng update
bao gồm phiên bản trong tài liệu đã đọc (để nếu chuỗi khác cập nhật tài liệu giữa truy vấn và bản cập nhật của bạn, bạn sẽ không ghi đè các thay đổi nhưng sẽ phải tải lại tài liệu và thử lại.
Chiến lược lập phiên bản sẽ không phải dựa trên toàn bộ tài liệu, bạn có thể tạo phiên bản cho các phần tử mảng cấp đầu tiên và sau đó bạn có thể chỉ cập nhật mảng con mà bạn quan tâm (thông qua bản cập nhật với $ set).