Mongodb 猫鼬分页和过滤器

Mongodb 猫鼬分页和过滤器,mongodb,pagination,mongoose,Mongodb,Pagination,Mongoose,我正在尝试使用Mongoose的可选过滤器选项进行分页 我让它通过对数据库进行两次查询来进行分页,一次查询获取文档的数量,另一次查询实际获取数据。没有分页,我的过滤器也能正常工作。我想知道是否有一种好方法可以从数据库返回文档的计数以及数据的页面(当前页面将显示的子集)?如何设置查询以执行此操作 目前我分别打了两个电话: Model.find(filter, selectPaths, {limit: limit, skip: skip}, callback); Model.count(filter

我正在尝试使用Mongoose的可选过滤器选项进行分页

我让它通过对数据库进行两次查询来进行分页,一次查询获取文档的数量,另一次查询实际获取数据。没有分页,我的过滤器也能正常工作。我想知道是否有一种好方法可以从数据库返回文档的计数以及数据的页面(当前页面将显示的子集)?如何设置查询以执行此操作

目前我分别打了两个电话:

Model.find(filter, selectPaths, {limit: limit, skip: skip}, callback);
Model.count(filter, another_callback);

我只需要打两个电话就能得到我需要的所有数据吗?

我将冒昧地链接到我的其他答案:和

简短回答:不要使用skip/limit,除非您的数据集很小(比如<1000个文档左右)。获取的页面越大,其性能越差。使用范围查询(
字段:{$gt:value}
),它们的效率要高得多(当然,如果索引的话)


不,一次查询不能返回总计数和部分数据。

使用skip和limit分页的效率如何?对于多少数据,skip可以正常工作?我读过一些博客文章,上面说对大型数据集使用基于范围的分页,但大型数据集的分页量是多少?你是否遵循了答案中的链接?这篇帖子里甚至有一个数字。