【问题标题】:Mongoose Pagination and FiltersMongoose 分页和过滤器
【发布时间】:2012-08-28 21:23:51
【问题描述】:

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

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

目前我正在拨打两个单独的电话:

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

我是否只需进行两次调用即可获取所需的所有数据?

【问题讨论】:

    标签: mongodb pagination mongoose


    【解决方案1】:

    我会冒昧地链接到我的其他答案:ranged paginationpagination with mongodb and node.js

    简短回答:不要使用跳过/限制,除非您的数据集很小(例如 field: {$gt: value}),它们的效率要高得多(当然,如果有索引的话)。

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

    【讨论】:

    • 使用跳过和限制进行分页的效率如何?对于多少数据,跳过将毫无问题地工作?我读过博客文章说对大型数据集使用基于范围的分页,但是大型数据集有多少?
    • 您是否点击了答案中的链接?这篇文章中甚至还有一个数字。
    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 2019-08-17
    • 2014-02-03
    • 2019-08-14
    • 2014-05-17
    • 2017-09-13
    • 1970-01-01
    • 2015-06-10
    相关资源
    最近更新 更多