mongodb - 数据滚动分页的问题
仅有的幸福
仅有的幸福 2017-05-02 09:21:12
0
1
630

我现在想用last_id的方法去实现滚动分页,但是出现了一些问题

数据的原始数据是:
B、C、E、D
现在需要按name排序,每页3条,那么取出的数据就是:
E、D、C
那么滚动到第二页的时候,根据last_id,也就是C的_id,取出的就是E、D,这样顺序就乱了

请问有什么办法解决吗,谢谢

仅有的幸福
仅有的幸福

membalas semua(1)
漂亮男人

Jangan tentukan last_id yang anda nyatakan di sini sebagai semestinya _id. Prinsipnya adalah untuk mencari digit terakhir medan yang diisih, dan halaman seterusnya bermula dari yang itu. Oleh itu, kerana ia diisih mengikut name, last_id anda sepatutnya menjadi C name Semak

lain kali
{name: {$gt: c.name}}

Tetapi terdapat masalah dengan kaedah paging ini, yang memerlukan medan yang diisih mestilah unik, jika tidak, sesetengah dokumen mungkin dilangkau. Contohnya, jika c.name = b.name, maka pertanyaan di atas jelas akan melangkau rekod b. Jadi jika medan pengisihan tidak unik, medan pengisihan kedua harus ditambah, seperti _id:

{name: 1, _id: 1}

Penapis yang sepadan hendaklah ditukar kepada:

{name: {$gte: c.name}, _id: {$gt: c._id}}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!