微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mongodb聚合分组分页

标注结果有多人标注,根据 fileId 字段去重取前10数据

Criteria criteria =  Criteria
        .where("userTaskId").is("E54B427EFA3A452EB34F8DC1BA190BD6")
        .and("deleted").is(false);

int pageNum = 1;
int pageSize = 10;

Aggregation aggregation = Aggregation.newAggregation(
        Aggregation.match(criteria),
        Aggregation.group("fileId"),
        Aggregation.sort(new Sort(Sort.Direction.DESC,"index")),
        Aggregation.skip((pageNum - 1) * pageSize),//跳到第几个开始
        Aggregation.limit(pageSize)//查出多少个数据
);

AggregationResults<Result> aggregate = resultRepository.aggregate(aggregation,"A0F2D943E2F64A5EA293A7CE99139EB2");
List<Result> resultList = aggregate.getMappedResults();
System.out.println(resultList.size());

 

public AggregationResults aggregate(Aggregation aggregation, String taskId) {
    return resultMongoTemplate.aggregate(aggregation,taskId, Result.class);
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐