Node.js 对Mongoose find查询结果进行分页和限制

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

我正在使用从客户机提交并使用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”对查找结果进行分页


谢谢

也许你的过滤结果只有一页?
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})
        });
}