Theo Sammaye, có vẻ như không có cách "thích hợp" để thực hiện việc này. Cách giải quyết của tôi là tạo trình tự như được nêu trên trang web mongo và chỉ cần thêm trường 'seq' vào mọi bản ghi trong bộ sưu tập của tôi. Bây giờ tôi có một trường duy nhất có thể sắp xếp đáng tin cậy để cập nhật.
Có thể sắp xếp đáng tin cậy là điều quan trọng ở đây. Tôi sẽ chỉ sắp xếp trên _id được tạo tự động nhưng tôi nhanh chóng nhận ra rằng thứ tự tự nhiên KHÔNG giống với thứ tự tăng dần của ObjectId (từ trang này có vẻ như giá trị chuỗi được ưu tiên hơn giá trị đối tượng phù hợp với hành vi mà tôi đã quan sát trong thử nghiệm). Ngoài ra, hoàn toàn có thể xảy ra trường hợp bản ghi được di chuyển lại trên đĩa, điều này làm cho thứ tự tự nhiên không đáng tin cậy để sắp xếp.
Vì vậy, bây giờ tôi có thể truy vấn bản ghi có 'seq' nhỏ nhất CHƯA được cập nhật để có được điểm bắt đầu bao gồm. Tiếp theo, tôi truy vấn các bản ghi có 'seq' lớn hơn điểm xuất phát của mình và bỏ qua (điều quan trọng là phải bỏ qua vì 'seq' có thể thưa thớt nếu bạn xóa tài liệu, v.v.) số lượng bản ghi mà tôi muốn cập nhật. Đặt giới hạn 1 cho truy vấn đó và bạn đã có một điểm cuối không bao gồm. Bây giờ tôi có thể đưa ra bản cập nhật với truy vấn 'updated' =0, 'seq'> =my start point và
Sau đây là các bước một lần nữa:
Khá đau đớn nhưng nó sẽ hoàn thành công việc.