Saya sangat kecewa dengan jawaban yang diterima dalam pertanyaan ini. Ini tidak akan skala. Jika Anda membaca cetakan kecil di cursor.skip():
Metode cursor.skip() seringkali mahal karena mengharuskan server berjalan dari awal koleksi atau indeks untuk mendapatkan posisi offset atau lewati sebelum mulai mengembalikan hasil. Saat offset (mis. pageNumber di atas) meningkat, cursor.skip() akan menjadi lebih lambat dan lebih intensif CPU. Dengan koleksi yang lebih besar, cursor.skip() dapat menjadi terikat IO.
Untuk mencapai pagination dengan cara yang terukur, gabungkan limit() bersama dengan setidaknya satu kriteria filter, tanggal CreateOn sesuai dengan banyak tujuan.
MyModel.find( { createdOn: { $lte: request.createdOnBefore } } )
.limit( 10 )
.sort( '-createdOn' )