FieldsPair & Kriteria
Gunakan FieldsPair, Condition, pengelompokan logis, alias id, dan filter native Driver untuk menyusun kondisi MongoDB dinamis.
FieldsPair dan Condition
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
Kondisi dinamis dan autoRangePair
.fields(
pair("status", "ACTIVE"),
minAge == null ? null : pair("age", minAge, gte),
FieldsPair.autoRangePair("createdAt", from, to)
)dari + ke
between
hanya dari
gte
hanya ke
lte
Keduanya tidak ada
Mengembalikan null sehingga dapat dikecualikan secara alami dari kondisi dinamis.
Pengelompokan AND / OR / NOT
.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 mendukung and, or, not, notAny, notAll dan juga dapat menentukan operator logis root secara langsung.
Aturan nama field dan id
pair("id", value) // _id
pair("parent.id", value) // parent._id
pair("incidentId", value) // incidentId
pair("_id", value) // _idHanya segmen path id yang tepat yang dinormalisasi menjadi _id. Jika alias id diberikan string hex 24 karakter yang valid, itu dapat diubah menjadi ObjectId, tetapi string yang ditentukan langsung sebagai _id tidak akan diubah secara otomatis. Path field string berdasarkan nama field MongoDB fisik.
Filter native Driver
.driverFilter(
Filters.and(
Filters.eq("status", "ACTIVE"),
Filters.size("tags", 3)
)
)
.end()
.findAll()
.execute();driverFilter(Bson) menggunakan definisi Driver tanpa menginterpretasikan ulang BSON mentah atau pemetaan field.