mongoose:如何实现分页?

我找不到任何关于这个。 显然,要获取下一页,您将需要使用.skip和.limit,但是如何查看是否有下一页? 基本上计算has_next_page (boolean)

在原始的mongo中,你可以使用cursor.hasNext()来查看是否有另一个页面。

我只能想到用mongoose做两种方法:

  1. .limit(pageSize + 1)

    然后只返回pageSize结果,但使用最后一个来确定是否有另一个结果。

  2. .count()

    为查询获取一个计数,看它是否大于pageNum * pageSize

第一个看起来很拙劣,第二个看起来效率很低(计数很贵,对吧?),有没有更好的方法来做到这一点?

你的第一个解决scheme是好的,如果你不想显示页数,但你需要获得计数,如果你想获得页数numberOfPages = count/numberPerPage所以你将运行计数()至less一次在开始,所以你查询“或更多,如果你想更新这个信息,而用户使用分页的数据{为了简单起见,我会忽略这一点,如果这对你很重要,请在这里评论,让我们讨论一下}。

所以第一个查询将需要一些时间在这里关于MongoDB关于计数性能问题的链接,告诉他们对这个方法进行改进https://jira.mongodb.org/browse/SERVER-1752