com.byeolnaerim:reactive-mongo-dsl
在充分利用 MongoDB Reactive Streams Driver 功能的同时,将动态查询、聚合、查找、原子更新、批量、Atlas Search 和向量搜索连接到基于 Reactor 的一致 DSL。
Reactive Mongo DSL 1.0.0
reactive-mongo-dsl 是一个 Java 库,它在 MongoDB Reactive Streams Driver 和 Project Reactor 之上,将动态条件、查询、分页、聚合、$lookup、分组、原子更新、批量、Atlas 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 原生聚合
通过 executeEntity(...).aggregation().stage(Bson)... 从第一个阶段开始直接构建 Driver 管道。
Atlas 搜索
在 executeEntity(...).search(index) 中配置专用的 $search 操作符和终端。
向量搜索
在 executeEntity(...).vectorSearch(index) 中配置查询向量、ANN/ENN、过滤器、嵌套向量选项。
事务
getTxJob(...) 将 MongoDB ClientSession 传播到 Reactor 上下文。