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

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

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

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

仅有的幸福
仅有的幸福

reply all(1)
漂亮男人

What you said herelast_id不要把它定义成一定是_id。它的原理是找到排序字段的最后一位,下一页从那一个开始。所以既然是根据name排序,那你的last_id其实就应该是C的name, check next time

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

But there is a problem with this paging method. The sorted fields must be unique, otherwise some documents may be skipped. For example if c.name = b.name,那么上面的查询显然会把b这条记录跳过。所以如果排序的字段不唯一,应该要加上一个第二排序字段,比如_id:

{name: 1, _id: 1}

The corresponding filter conditions should be changed to:

{name: {$gte: c.name}, _id: {$gt: c._id}}
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!