分组

在常规条件之后构建组键和累加器,并通过驱动程序原生累加器或自定义映射进行扩展。


基本组

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();

累加器

• count() / countAs(alias)

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

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

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

• 驱动程序原生累加器:accumulator(BsonField)

组结果映射

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

如果需要与基本键/值映射不同的结果形状,可以直接指定转换器。还可以将 executeLookup(rightBuilder, spec) 连接到分组结果。

© 2026 Byeolnaerim. 保留所有权利.介绍隐私政策