插入数据:
mongoTemplate.save(new Role("zhang1",5));
mongoTemplate.save(new Role("zhang2",6));
mongoTemplate.save(new Role("zhang3",12));
mongoTemplate.save(new Role("zhang4",14));
mongoTemplate.save(new Role("zhang5",23));
mongoTemplate.save(new Role("zhang1",6));
mongoTemplate.save(new Role("zhang5",24));
查询:
TypedAggregation<Role> agg = Aggregation.newAggregation(Role.class,
Aggregation.group("name").
sum("age").as("agesum").
first("age").as("agefirst").
addToSet("age").as("agess")
);
AggregationResults<Document> result = mongoTemplate.aggregate(agg,Document.class);
result.getMappedResults().forEach(document -> System.out.println(document));
结果:
Document{{_id=zhang1, agesum=11, agefirst=5, agess=[6, 5]}}
Document{{_id=zhang2, agesum=6, agefirst=6, agess=[6]}}
Document{{_id=zhang3, agesum=12, agefirst=12, agess=[12]}}
Document{{_id=zhang5, agesum=47, agefirst=23, agess=[24, 23]}}
Document{{_id=zhang4, agesum=14, agefirst=14, agess=[14]}}
注意:
默认会把分组的字段放在_id 上
注意:Document这个class是:
import org.bson.Document;