Node.js 对Mongoose find查询结果进行分页和限制
我正在使用从客户机提交并使用req.query处理的过滤器列表实现分页 结果是正确的:按页面和特定查询获取图书对象的(限制)数量 但是我需要改变mecanism:我需要实现分页并限制查询结果。。现在的结果是将分页应用到查询中(使用qyery),因此如果我调用:localhost:3000/Books/search/:limit/page?types=恐怖、喜剧和价格=5,10,15 localhost:3000/Books/search/3/1?类型=恐怖、喜剧和价格=5,10,15=>我在第1页得到结果,但在第2页没有。。我需要根据“类型=恐怖、喜剧和价格=5,10,15”对查找结果进行分页Node.js 对Mongoose find查询结果进行分页和限制,node.js,express,mongoose,pagination,find,Node.js,Express,Mongoose,Pagination,Find,我正在使用从客户机提交并使用req.query处理的过滤器列表实现分页 结果是正确的:按页面和特定查询获取图书对象的(限制)数量 但是我需要改变mecanism:我需要实现分页并限制查询结果。。现在的结果是将分页应用到查询中(使用qyery),因此如果我调用:localhost:3000/Books/search/:limit/page?types=恐怖、喜剧和价格=5,10,15 localhost:3000/Books/search/3/1?类型=恐怖、喜剧和价格=5,10,15=>我在第1
谢谢也许你的过滤结果只有一页?
getBooksWithLimitMultipleFields = async (req, res) => {
var queryFind = {};
var perPage = req.params.limit ? parseInt(req.params.limit) : 3;
var page = req.params.page ? parseInt(req.params.page) : 1;
var skipValue = (page-1) * perPage;
if (req.query.types) {
queryFind["Books_type"] = { $in: req.query.types.split(',') }
}
if (req.query.emails) {
queryFind["Books_price"] = { $in: req.query.prices.split(',') }
}
await Books.find(queryFind)
.skip(skipValue)
.limit(perPage)
.lean()
.exec(function (err, books) {
if (err) {
return res.status(400).json({ success: false, error: err })
}
if (!usersAvec.length) {
return res
.status(404)
.json({ success: false, error: `no books` })
}
return res.status(200).json({ success: true, data: books})
});
}