mongoose-aggregate-pagination-v2分页异常问题求助
问题解决方法
你的问题出在错误传递了aggregatePaginate的参数:
你当前的代码先执行了await Topic.aggregate([{ $match: ... }]),得到的是已经过滤完成的文档数组,但aggregatePaginate的第一个参数需要的是聚合管道数组,而不是已经执行完毕的聚合结果。当你把已执行的结果传给它时,插件会忽略这个无效参数,直接对整个Topic集合执行分页查询,所以返回了所有文档。
正确代码写法
直接将聚合管道数组传入aggregatePaginate,不需要提前执行aggregate:
const result = await Topic.aggregatePaginate( [{ $match: { author: user._id } }], { page: 1, limit: 2 } );
补充说明
aggregatePaginate内部会自行处理聚合管道的执行与分页逻辑,你只需要提供未执行的聚合管道定义即可。之前的写法相当于绕开了插件的分页逻辑,直接把完整结果传进去,但插件并不支持这种用法,导致出现不符合预期的结果。
内容的提问来源于stack exchange,提问作者Sunny
相关产品推荐
相关产品推荐

