插入数据:java
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));
查询:app
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));
结果:code
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]}}
注意:get
默认会把分组的字段放在_id 上io
注意:Document这个class是:class
import org.bson.Document;