分組
在一般條件之後構建分組鍵和累加器,並擴展為 Driver-native 累加器或自定義映射。
基本群組
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)
• Driver-native 累加器:accumulator(BsonField)
分組結果映射
java
.group(String.class, GroupResult.class)
.keyConverter(document -> ...)
.valueConverter(document -> ...)
.execute();如果需要與基本的鍵/值映射不同的結果形狀,可以直接指定轉換器。分組結果也可以連接 executeLookup(rightBuilder, spec)。