我正在使用Mongoose paginate搜索和过滤查询一个名为Thought的模式。在我的thoughtindex.ejs模板中,我使用forEach循环在每个页面上显示40条记录:
<% thoughts.docs.forEach(function(thought, i) { %>
有一个显示更多的按钮,点击接下来的40条记录:
<div id="box-show-more" class="box-show-more">
<button class="show-more" id="showMoreBtn" data-page="<%= thoughts.page + 1 %>">Show More</button>
</div>
当对记录的作者应用搜索/过滤器时,许多作者的记录少于40条,但当前仍显示“显示更多”按钮。在我的控制器中,分页是这样定义的:
const thoughts = await Thought.paginate(queryObject, {
page: req.query.page || 1,
limit: 40,
sort: { 'createdAt': -1},
populate: 'likes',
collation: { locale: "en" }
});
我想包括一个计数的总文件,所以我可以添加一个 Package 周围显示更多按钮一样,'如果超过40条记录,显示显示更多按钮'。但我不确定如何在分页查询中包含计数。在Mongoose文档中,可以看到有一个名为'totalDocs'的字段,但我不确定在哪里包含它,或者如何从它返回值并在我的.ejs模板中使用。
2条答案
按热度按时间f4t66c6m1#
不确定你使用的是哪个库/插件,但考虑到this library,它应该是相当直接的:
从
paginate
调用返回的对象将包含一个属性totalDocs
,该属性生成集合中与您的查询匹配的文档总数。holgip5t2#
我做了这个分页服务,可以用在Mongo上。
如何使用?是这样
你可以调整它来处理更多的场景。