对某些筛选条件进行分页查询,开始每一页的有效data都不足pageSize,最后发现,aggregation 的pipeline是有先后顺序的。
错误:
agg = Aggregation.newAggregation(Aggregation.skip((curPage - 1) * pageSize), Aggregation.limit(pageSize), Aggregation.match(criteria), project);
这样是先找出每一页的data,然后再进行筛选
正确:
agg = Aggregation.newAggregation(Aggregation.match(criteria), Aggregation.skip((curPage - 1) * pageSize), Aggregation.limit(pageSize), project);
应该先筛选,再分页
本文探讨了在MongoDB中使用Aggregation Framework进行分页查询时的常见误区及正确实践。指出应先进行筛选条件匹配,再执行分页操作,以提高查询效率。

5491

被折叠的 条评论
为什么被折叠?



