mongodb聚合分組分頁


標注結果有多人標注,根據 fileId 字段去重取前10數

Criteria criteria = Criteria.where("userTaskId").is("E54B427EFA3A452EB34F8DC1BA190BD6");
int pageNum = 1;
int pageSize = 10;


Aggregation aggregation = Aggregation.newAggregation(
Aggregation.match(criteria),
Aggregation.group("fileId")
        .max("index").as("index").last("fileName").as("fileName"),
        Aggregation.project("_id", "fileName"),
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();

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM