Spring data mongo groupby instance

  mongodb, springboot

Template

import static org.springframework.data.mongodb.core.aggregation.Aggregation.*;

Aggregation agg = newAggregation(
    pipelineOP1(),
    pipelineOP2(),
    pipelineOPn()
);

AggregationResults<OutputType> results = mongoTemplate.aggregate(agg, "INPUT_COLLECTION_NAME", OutputType.class);
List<OutputType> mappedResult = results.getMappedResults();

Example

        List<AggregationOperation> aggs = new ArrayList<>();
        aggs.add(Aggregation.match(Criteria.where("name").is("log")));
        aggs.add(Aggregation.group("code").count().as("count"));
        aggs.add(Aggregation.project()
                .and("_id").as("code")
                .and("count").as("count"));

        Aggregation agg = Aggregation.newAggregation(aggs);

        AggregationResults<Map> results = mongoTemplate.aggregate(agg,"yourdocument", Map.class);

doc