FieldsPair & Criteria

Sử dụng FieldsPair, Condition, nhóm logic, bí danh id và bộ lọc gốc của Driver để cấu hình điều kiện MongoDB động.


FieldsPair và Condition

java
FieldsPair.pair(field, value)
FieldsPair.pair(field, value, condition)
FieldsPair.pair(field, condition)

• eq, notEq, between, gt/gte, lt/lte

• in, notIn, like, regex, exists

• isNull, isNotNull, all, near, nearSphere, elemMatch

Điều kiện động và autoRangePair

java
.fields(
    pair("status", "ACTIVE"),
    minAge == null ? null : pair("age", minAge, gte),
    FieldsPair.autoRangePair("createdAt", from, to)
)

từ + đến

between

chỉ từ

gte

chỉ đến

lte

Không có cả hai

Trả về null nên có thể tự nhiên loại trừ trong điều kiện động.

Nhóm AND / OR / NOT

java
.fields()
.and(f -> f.fields(
    pair("status", List.of("ACTIVE_1", "ACTIVE_2"), in),
    pair("age", 20, gte)
))
.or(f -> f.fields(
    pair("name", "kim", like),
    pair("name", "lee", like)
))
.notAny(f -> f.fields(pair("banned", true)))
.end()

FieldBuilder hỗ trợ and, or, not, notAny, notAll và có thể chỉ định trực tiếp toán tử logic gốc.

Quy tắc tên trường và id

java
pair("id", value)          // _id
pair("parent.id", value)   // parent._id
pair("incidentId", value)  // incidentId
pair("_id", value)         // _id

Chỉ chuẩn hóa đoạn đường dẫn id chính xác thành _id. Nếu truyền một chuỗi hex 24 ký tự hợp lệ cho bí danh id, nó có thể được chuyển đổi thành ObjectId, nhưng chuỗi được chỉ định trực tiếp cho _id sẽ không tự động chuyển đổi. Đường dẫn trường chuỗi dựa trên tên trường MongoDB vật lý.

Bộ lọc gốc của Driver

java
.driverFilter(
    Filters.and(
        Filters.eq("status", "ACTIVE"),
        Filters.size("tags", 3)
    )
)
.end()
.findAll()
.execute();

driverFilter(Bson) sử dụng định nghĩa Driver mà không giải thích lại hoặc ánh xạ trường từ DSL sang BSON thô.

© 2026 Byeolnaerim. Bảo lưu mọi quyền.Giới thiệuChính sách xử lý thông tin cá nhân