分页一
// 方式一:
//获取客户端的当前页
let page = req.query.page || 1;
//设定每页显示数据条数
let size = 6;
//获取数据库数据总条数
let count = await Article.countDocuments({});
//向上取整 计算页数
let total = Math.ceil(count / size);
//计算页码对应数据查询开始的位置
let start = (page - 1) * size;
let articles = await Article.find({}).populate('author').limit(size).skip(start); res.render('admin/article', {
articles: articles,
total,
page,
count
});
分页二
// 方式二
// 获取客户端的当前页
let page = req.query.page || 1;
// page() 当前页数
// size() 每页显示数据条数
// display() 页面上显示的同时页码数量
// exec() 向数据库发送查询请求
let articles = await pagination(Article).find().page(page).size(2).display(3).populate('author').exec(); // res.send(articles);
res.render('admin/article', {
articles: articles
});
遇到的问题
在使用方式二时,node.js会报错
DeprecationWarning: collection.count is deprecated, and will be removed in a future version. Use Collection.countDocuments or Collection.estimatedDocumentCount instead
原因猜测:第三方模块mongoose-sex-page的源码中使用了collection.count方法
本文介绍了两种在Node.js中实现分页查询的方法,包括直接使用Mongoose查询和利用第三方分页模块。第一种方法通过计算偏移量和限制查询结果数量来实现分页,而第二种方法则更简洁,但可能遇到第三方模块过时的问题。
1574





