原生聚合
說明如何從第一階段開始直接執行 MongoDB Driver 的 Bson 聚合階段,並在不重新實現 DSL 功能的情況下使用新 Driver 功能。
Driver-native 根聚合
aggregation() 會按照 MongoDB Driver 返回的 Bson 階段的調用順序從第一階段開始執行。DSL 不重新實現 Driver 聚合運算符,只負責 pipeline 執行、mapping、Reactor publisher、preview/explain 連接。Document 也是 Bson,因此可以直接傳遞。
結果映射
execute()
將結果映射為 source entity 類型。
執行(ResultType.class)
當聚合結果形狀與來源實體不一致時,映射到單獨的結果類型。
執行文件()
直接返回原始 MongoDB Document。
MongoDB Driver 5.10 的 $score / $scoreFusion
1.0.0 不會創建 $score 和 $scoreFusion 專用的包裝器。Driver 5.10 的 Aggregates.score(...) / Aggregates.scoreFusion(...) 已經返回 Bson 階段,因此直接傳遞給 stage(...)。
在 Search / Vector 後添加 Bson 階段
Search/Vector 的 stage(Bson) 在強制性的第一階段 $search / $vectorSearch 之後進行。像 $scoreFusion 這樣的功能必須是管道的第一個階段,使用 aggregation()。
聚合發佈者選項
preview() 和實際的 MongoDB explain() 也在根聚合構建器中得到支持。