com.byeolnaerim:reactive-mongo-dsl
MongoDB Reactive Streams Driverの機能をそのまま活用しながら、動的クエリ、集約、ルックアップ、アトミックアップデート、バルク、Atlas SearchとVector SearchをReactorベースの一貫したDSLで接続します。
Reactive Mongo DSL 1.0.0
reactive-mongo-dslはMongoDB Reactive Streams DriverとProject Reactorの上で動的条件、クエリ、ページング、集約、$lookup、グルーピング、アトミックアップデート、バルク、Atlas SearchとVector Searchを1つのチェイニングフローで接続するJavaライブラリです。
Driver-first
MongoDB Java Driverを置き換えません。Driverが提供するtyped builderはそのまま活用し、DSLは反復的な組み合わせとReactor接続を簡素化します。
Framework-independent core
コアはSpring Data MongoDBに直接依存しません。基本のDriverMongoExecutionContextはReactive Streams Driverを直接使用します。
Escape hatch
Bson、SearchOperator、VectorSearchQuery、Driverオプションカスタマイザーを直接受け取ることができ、Driverに新機能が追加されても既存のDSLフローの中で使用できます。
1.0.0基準
Artifact
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プロジェクトではアプリケーション側のadapterとして既存のmapping/auditing設定を接続します。
build.gradle
text主要な実行フロー
一般的なクエリ
executeEntity(...) -> fields(...) -> end() -> find/findAll/count/distinct/delete/exists/atomicUpdate
Driverネイティブの集約
executeEntity(...).aggregation().stage(Bson)...で最初のstageからDriver pipelineを直接構成します。
Atlas Search
executeEntity(...).search(index)で$search専用のoperatorとterminalを構成します。
Vector Search
executeEntity(...).vectorSearch(index)でquery vector、ANN/ENN、filter、nested vector optionを構成します。
Transaction
getTxJob(...)がMongoDB ClientSessionをReactor Contextに伝播します。