Pagination di MongoDB dapat dilakukan dengan menggunakan kombinasi limit()
dan skip()
.
Misalnya, asumsikan kita memiliki koleksi yang disebut pengguna di database aktif kita.
>> db.users.find().limit(3)
Ini mengambil daftar tiga dokumen pengguna pertama untuk kami. Catatan, ini pada dasarnya sama dengan menulis:
>> db.users.find().skip(0).limit(3)
Untuk tiga berikutnya, kita bisa melakukan ini:
>> db.users.find().skip(3).limit(3)
Ini melompati tiga catatan pengguna pertama, dan memberi kita tiga catatan berikutnya. Jika hanya ada satu pengguna lagi di database Anda, jangan khawatir; MongoDB cukup pintar untuk hanya mengembalikan data yang ada, dan tidak akan mogok.
Ini dapat digeneralisasikan seperti itu, dan kira-kira setara dengan apa yang akan Anda lakukan dalam aplikasi web. Dengan asumsi kita memiliki variabel yang disebut PAGE_SIZE
yang disetel ke 3, dan PAGE_NUMBER
arbitrer :
>> db.users.find().skip(PAGE_SIZE * (PAGE_NUMBER - 1)).limit(PAGE_SIZE)
Saya tidak dapat berbicara secara langsung tentang cara menggunakan metode ini di Ruby on Rails, tetapi saya menduga perpustakaan Ruby MongoDB memaparkan metode ini.