我正在构建一个从 MongoDB 调用数据的应用程序。出于这个问题的目的,假设用户在我的应用程序中搜索某个查询,而 MongoDB 有 4,000 个与该查询匹配的结果要吐出。
在阅读了一下之后,我发现可以使用该.skip()
方法进行分页,但是 MongoDB 自己建议不要使用它,因为它需要光标遍历所有记录,直到您要跳到的那个,这越来越多你去的列表中越高越贵。
我看过一些教程依赖于_id
结果的属性是顺序的,但这不适用于这里——我的数据库有数万条记录,每条记录都有一个唯一的 id,4000 个结果适用于用户的查询肯定不会是连续的。
谁能想到一种方法来做到这一点,或者是skip()
这里唯一的选择?
其他注意事项:
分页将根据页面上的位置工作。例如,第一个查询应该向我的应用输出 20 条记录。当用户滚动到页面底部时,我可能会获得_id
页面上第 20 个元素的第 20 个元素并将其传递给我的查询,在 4,000 个结果列表中找到它,找到后续结果并开始下一组 20 个从那里。这种事情是否可能,并且它会比 CPU 密集度低skip()
吗?