Java 结合查询结果和行数与Spring MongoDB聚合
我试图用SpringDataMongoDB实现一个典型的分页用例,它提供查询结果的页面和最大可用文档数。我有一个有效的解决方案,但是,我不确定这是合理的还是有效的还是 那么,我的脚步到目前为止Java 结合查询结果和行数与Spring MongoDB聚合,java,spring,pagination,aggregation,spring-data-mongodb,Java,Spring,Pagination,Aggregation,Spring Data Mongodb,我试图用SpringDataMongoDB实现一个典型的分页用例,它提供查询结果的页面和最大可用文档数。我有一个有效的解决方案,但是,我不确定这是合理的还是有效的还是 那么,我的脚步到目前为止 使用筛选条件创建匹配操作 分组并统计找到的文档数 添加实际信息(本例中为简单ID) 展开ID列表 对管道应用skip和limit 代码: List<AggregationOperation> ops = new ArrayList<>(); ops.add(match(filt
skip
和limit
List<AggregationOperation> ops = new ArrayList<>();
ops.add(match(filterCriteria));
ops.add(Aggregation.group().count().as("total").addToSet("userId").as("userId"));
ops.add(Aggregation.unwind("userId"));
ops.add(skip(page*count));
ops.add(limit(count));
我更喜欢这种没有冗余的东西:
{ total: 13,
userIds: [ 100,101,102,...]
}
通过聚合获得第二种形式是否可能(且合理)?聚合是实现这一目标的合适方法,还是有更好的方法?
除了冗余之外,是否有任何东西反对使用展开的第一个解决方案
{ total: 13,
userIds: [ 100,101,102,...]
}