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

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

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

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

仅有的幸福
仅有的幸福

répondre à tous(1)
漂亮男人

Ne définissez pas le last_id que vous avez mentionné ici comme étant nécessairement _id. Son principe est de retrouver le dernier chiffre du champ trié, et la page suivante part de celui-là. Donc, comme il est trié selon name, votre last_id devrait en fait être celui de C name Vérifiez

la prochaine fois.
{name: {$gt: c.name}}

Mais il y a un problème avec cette méthode de pagination, qui nécessite que les champs triés soient uniques, sinon certains documents risquent d'être ignorés. Par exemple, si c.name = b.name, alors la requête ci-dessus ignorera évidemment l'enregistrement b. Ainsi si le champ de tri n'est pas unique, il faut ajouter un deuxième champ de tri, tel que _id :

{name: 1, _id: 1}

Le filtre correspondant doit être remplacé par :

{name: {$gte: c.name}, _id: {$gt: c._id}}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal