关于分页(做个记录)

本文介绍了两种在Node.js中实现分页查询的方法,包括直接使用Mongoose查询和利用第三方分页模块。第一种方法通过计算偏移量和限制查询结果数量来实现分页,而第二种方法则更简洁,但可能遇到第三方模块过时的问题。

分页一

// 方式一:    
//获取客户端的当前页    
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方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值