com.byeolnaerim:reactive-mongo-dsl
在充分利用 MongoDB Reactive Streams Driver 功能的同時,將動態查詢、聚合、查找、原子更新、批量、Atlas Search 和 Vector Search 連接到基於 Reactor 的一致 DSL。
Reactive Mongo DSL 1.0.0
reactive-mongo-dsl 是一個 Java 庫,能夠在 MongoDB Reactive Streams Driver 和 Project Reactor 上連接動態條件、查詢、分頁、聚合、$lookup、分組、原子更新、批量、Atlas Search 和 Vector Search,形成一個鏈式流程。
Driver-first
不會取代 MongoDB Java Driver。Driver 提供的類型化構建器將被保留,DSL 簡化了重複組合和 Reactor 連接。
框架獨立核心
核心不直接依賴於 Spring Data MongoDB。基本的 DriverMongoExecutionContext 直接使用 Reactive Streams Driver。
逃生通道
可以直接接收 Bson、SearchOperator、VectorSearchQuery、Driver 選項自定義器,因此即使 Driver 先添加新功能,也可以在現有 DSL 流程中使用。
基於 1.0.0
工件
com.byeolnaerim:reactive-mongo-dsl:1.0.0
Java
21+
MongoDB Java Driver
基於 5.10.0
Reactor
基於 Reactor BOM 2025.0.7
Spring Data MongoDB
可選。Spring 項目中將現有的映射/審計設置連接到應用程序側適配器。
build.gradle
text主要執行流程
一般查詢
executeEntity(...) -> fields(...) -> end() -> find/findAll/count/distinct/delete/exists/atomicUpdate
Driver-native 聚合
通過 executeEntity(...).aggregation().stage(Bson)... 從第一個階段開始直接構建 Driver 管道。
Atlas 搜索
在 executeEntity(...).search(index) 中構建專用的 $search 操作符和終端。
向量搜索
在 executeEntity(...).vectorSearch(index) 中構建查詢向量、ANN/ENN、過濾器、嵌套向量選項。
事務
getTxJob(...) 將 MongoDB ClientSession 傳播到 Reactor 上下文。