1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
| @Override
public List<ClassRequest> findTop() {
AggregationOperation matchOperation = Aggregation.match(Criteria.where("college").is("计算机学院"));
AggregationOperation groupOperation = Aggregation.group("className","college")
.count().as("count")
.max("age").as("max")
.min("age").as("min");
AggregationOperation projectOperation = Aggregation.project().and("className").as("name").andInclude("college","count","max","min");
AggregationOperation sortOperation = Aggregation.sort(Sort.Direction.ASC,"name","college");
AggregationOperation skigOperation = Aggregation.skip(2l);
AggregationOperation limitOperation =Aggregation.limit(1);
Aggregation aggregation = Aggregation.newAggregation(matchOperation,groupOperation,projectOperation,
sortOperation,skigOperation,limitOperation);
AggregationResults<ClassRequest> aggregationResults =
mongoTemplate.aggregate(aggregation, Student.class, ClassRequest.class);
return aggregationResults.getMappedResults();
}
|