Jika anda ingin mendapatkan "halaman seterusnya" atau "halaman sebelumnya", anda boleh melakukannya dengan menanyakan isihan+had yang lebih besar daripada _id tertentu.
Jika anda ingin mendapatkan "halaman xxx", jika anda ingin tepat sepenuhnya, sebenarnya tidak ada cara yang baik. Paging itu sendiri adalah logik "kira satu per satu", dan proses yang memakan masa ini tidak boleh dielakkan tanpa mengira sama ada. terdapat indeks.
Apabila bilangan halaman sangat besar, tidak ramai orang mengambil berat tentang nombor selepas berpuluh juta Anda boleh menggunakan redis untuk menyimpan senarai _id mengikut nombor halaman dan mengemas kininya sekali-sekala.
Perkara asas masalah ini ialah: "Struktur b+ yang indeks bergantung tidak boleh digunakan untuk pengiraan kedudukan."
Jika anda ingin mendapatkan "halaman seterusnya" atau "halaman sebelumnya", anda boleh melakukannya dengan menanyakan isihan+had yang lebih besar daripada _id tertentu.
Jika anda ingin mendapatkan "halaman xxx", jika anda ingin tepat sepenuhnya, sebenarnya tidak ada cara yang baik. Paging itu sendiri adalah logik "kira satu per satu", dan proses yang memakan masa ini tidak boleh dielakkan tanpa mengira sama ada. terdapat indeks.
Apabila bilangan halaman sangat besar, tidak ramai orang mengambil berat tentang nombor selepas berpuluh juta Anda boleh menggunakan redis untuk menyimpan senarai _id mengikut nombor halaman dan mengemas kininya sekali-sekala.
Perkara asas masalah ini ialah: "Struktur b+ yang indeks bergantung tidak boleh digunakan untuk pengiraan kedudukan."
Rekodkan _id terakhir pertanyaan terakhir dan pertanyaan seterusnya ialah {_id: {$gt: last_id}}