Grouping

일반 criteria 뒤에서 group key와 accumulator를 구성하고 Driver-native accumulator 또는 custom mapping으로 확장합니다.


기본 group

java
Mono<Map<String, GroupResult>> grouped = dsl
    .executeEntity(Order.class, MongoTemplateName.FRONT)
    .fields(pair("status", "DONE"))
    .end()
    .findAll()
    .group(String.class, GroupResult.class)
    .by("userId")
    .count()
    .sum("amount", "totalAmount")
    .execute();

Accumulator

• count() / countAs(alias)

• sum(field, alias) / avg(field, alias)

• min(field, alias) / max(field, alias)

• addToSet(field, alias) / push(field, alias)

• Driver-native accumulator: accumulator(BsonField)

Group 결과 mapping

java
.group(String.class, GroupResult.class)
.keyConverter(document -> ...)
.valueConverter(document -> ...)
.execute();

기본 key/value mapping과 다른 결과 shape가 필요하면 converter를 직접 지정할 수 있습니다. grouping 결과에도 executeLookup(rightBuilder, spec)을 연결할 수 있습니다.

© 2026 Byeolnaerim. All rights reserved.소개개인정보처리방침