เริ่มต้นอย่างรวดเร็ว

เชื่อมต่อ DriverMongoExecutionContext กับ MongoTemplateResolver และดำเนินการ query แรกของ Reactive Mongo DSL 1.0.0.


1. การกำหนดค่า MongoExecutionContext

MongoConfig.java
java
MongoClient mongoClient = MongoClients.create(connectionString);
MongoDatabase mongoDatabase = mongoClient.getDatabase("app");

MongoExecutionContext context =
    new DriverMongoExecutionContext(mongoClient, mongoDatabase);

DriverMongoExecutionContext พื้นฐานใช้ MongoDB Reactive Streams Driver โดยตรง หากกฎการตั้งชื่อ collection แตกต่างกัน สามารถส่ง resolver ชื่อ collection แยกต่างหากได้

2. การเชื่อมต่อ MongoTemplateResolver

MongoTemplateNameResolver.java
java
public enum MongoTemplateName {
  FRONT,
  BACK
}

MongoTemplateResolver<MongoTemplateName> resolver = key ->
    key == MongoTemplateName.BACK ? backContext : frontContext;

ReactiveMongoDsl<MongoTemplateName> dsl = new ReactiveMongoDsl<>(resolver);

3. การค้นหาครั้งแรก

UserService.java
java
Flux<User> users = dsl
    .executeEntity(User.class, MongoTemplateName.FRONT)
    .fields(
        pair("status", "ACTIVE"),
        minAge == null ? null : pair("age", minAge, gte)
    )
    .end()
    .findAll()
    .sorts(sort -> sort.desc("createdAt"))
    .execute();

เมื่อใช้เป็น Spring Bean

ReactiveMongoDslConfiguration.java
java
@Configuration
public class ReactiveMongoDslConfiguration {

  @Bean
  public ReactiveMongoDsl<MongoTemplateName> reactiveMongoDsl(
      MongoTemplateResolver<MongoTemplateName> resolver
  ) {
    return new ReactiveMongoDsl<>(resolver);
  }
}