FieldsPair & Kriterien
Konfigurieren Sie dynamische MongoDB-Bedingungen mit FieldsPair, Condition, logischer Gruppierung, id-Alias und Driver-nativen Filtern.
FieldsPair und 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
Dynamische Bedingungen und autoRangePair
.fields(
pair("status", "ACTIVE"),
minAge == null ? null : pair("age", minAge, gte),
FieldsPair.autoRangePair("createdAt", from, to)
)von + bis
between
nur von
gte
nur bis
lte
keines von beiden
Gibt null zurück, sodass es in dynamischen Bedingungen natürlich ausgeschlossen werden kann.
AND / OR / NOT Gruppierung
.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 unterstützt and, or, not, notAny, notAll und ermöglicht die direkte Angabe des root logischen Operators.
Feldnamen und id-Regeln
pair("id", value) // _id
pair("parent.id", value) // parent._id
pair("incidentId", value) // incidentId
pair("_id", value) // _idNur der genaue id-Path-Segment wird in _id normalisiert. Ein gültiger 24-stelliger Hex-String für den id-Alias kann in ObjectId umgewandelt werden, aber ein direkt angegebener String für _id wird nicht automatisch umgewandelt. Der String-Feldpfad basiert auf dem physischen MongoDB-Feldnamen.
Driver-nativer Filter
.driverFilter(
Filters.and(
Filters.eq("status", "ACTIVE"),
Filters.size("tags", 3)
)
)
.end()
.findAll()
.execute();driverFilter(Bson) verwendet die Driver-Definition direkt, ohne dass die DSL raw BSON neu interpretiert oder Feldzuordnungen vorgenommen werden.