Grouping

สร้างกลุ่มคีย์และตัวสะสมหลังจากเงื่อนไขทั่วไป และขยายด้วยตัวสะสมแบบ 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();

หากต้องการการแมพ key/value พื้นฐานและรูปแบบผลลัพธ์ที่แตกต่างกัน สามารถกำหนด converter ได้โดยตรง สามารถเชื่อมต่อ executeLookup(rightBuilder, spec) กับผลลัพธ์การจัดกลุ่มได้.