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

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

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

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

仅有的幸福
仅有的幸福

모든 응답(1)
漂亮男人

여기서 언급한 last_id를 반드시 _id로 정의하지 마세요. 그 원리는 정렬된 필드의 마지막 숫자를 찾고, 다음 페이지는 그 숫자에서 시작하는 것입니다. 따라서 name을 기준으로 정렬되었으므로 last_id은 실제로 C의 name이어야 합니다. 다음에는

을 확인하세요. 으아아아

그러나 이 페이징 방법에는 정렬된 필드가 고유해야 한다는 문제가 있습니다. 그렇지 않으면 일부 문서를 건너뛸 수 있습니다. 예를 들어 c.name = b.name인 경우 위 쿼리는 분명히 레코드 b를 건너뜁니다. 따라서 정렬 필드가 고유하지 않은 경우 _id:

와 같이 두 번째 정렬 필드를 추가해야 합니다. 으아아아

해당 필터를 다음으로 변경해야 합니다.

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿