Secara umum, ya. Jika Anda memiliki bidang monoton, idealnya bidang yang diindeks, Anda bisa mengikutinya. Misalnya, jika Anda menggunakan bidang jenis ObjectId
sebagai kunci utama atau jika Anda memiliki CreatedDate
atau sesuatu, Anda cukup menggunakan $lt
kueri, ambil sejumlah elemen tetap, lalu kueri lagi menggunakan $lt
dari _id
terkecil atau CreatedDate
Anda temui di batch sebelumnya.
Hati-hati dengan perilaku monoton yang ketat vs. perilaku monoton yang tidak ketat:Anda mungkin harus menggunakan $lte
jika kuncinya tidak ketat, maka cegah melakukan hal-hal dua kali pada penipuan. Sejak _id
bidangnya unik, ObjectIds
selalu sangat monoton.
Jika Anda tidak memiliki kunci seperti itu, semuanya akan sedikit lebih rumit. Anda masih dapat mengulangi 'sepanjang indeks' (indeks apa pun, baik itu nama, hash, UUID, Guid, dll.). Itu juga berfungsi dengan baik, tetapi sulit untuk melakukan snapshotting, karena Anda tidak pernah tahu apakah hasil yang baru saja Anda temukan dimasukkan sebelum Anda mulai melintasi, atau tidak. Juga, ketika dokumen dimasukkan di awal traversal, dokumen itu akan terlewatkan.