com.byeolnaerim:reactive-mongo-dsl
เชื่อมโยงการค้นหาแบบไดนามิก, การรวม, การค้นหา, การอัปเดตแบบอะตอม, bulk, Atlas Search และ Vector Search เข้ากับ DSL ที่สอดคล้องกันบนพื้นฐานของ Reactor โดยใช้ฟีเจอร์ของ MongoDB Reactive Streams Driver
Reactive Mongo DSL 1.0.0
reactive-mongo-dsl เป็นไลบรารี Java ที่เชื่อมโยงเงื่อนไขแบบไดนามิก, การค้นหา, paging, การรวม, $lookup, การจัดกลุ่ม, การอัปเดตแบบอะตอม, bulk, Atlas Search และ Vector Search เข้าด้วยกันในกระบวนการ chaining บน MongoDB Reactive Streams Driver และ Project Reactor
Driver-first
ไม่แทนที่ MongoDB Java Driver ใช้ builder ที่มีประเภทที่ Driver ให้มาและทำให้ 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 จะเชื่อมโยงการตั้งค่า mapping/auditing ที่มีอยู่กับ adapter ด้านแอปพลิเคชัน
build.gradle
textกระบวนการดำเนินการหลัก
Query ทั่วไป
executeEntity(...) -> fields(...) -> end() -> find/findAll/count/distinct/delete/exists/atomicUpdate
Aggregation แบบ Driver-native
กำหนด pipeline ของ Driver โดยตรงตั้งแต่ stage แรกด้วย executeEntity(...).aggregation().stage(Bson)...
Atlas Search
กำหนด operator และ terminal เฉพาะสำหรับ $search ด้วย executeEntity(...).search(index)
Vector Search
กำหนด query vector, ANN/ENN, filter, และตัวเลือกเวกเตอร์ที่ซ้อนกันด้วย executeEntity(...).vectorSearch(index)
Transaction
getTxJob(...) จะส่งต่อ MongoDB ClientSession ไปยัง Reactor Context