FieldsPair & Critères
Configurez des conditions MongoDB dynamiques en utilisant FieldsPair, Condition, regroupement logique, alias d'id et filtre natif du pilote.
FieldsPair et 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
Conditions dynamiques et autoRangePair
.fields(
pair("status", "ACTIVE"),
minAge == null ? null : pair("age", minAge, gte),
FieldsPair.autoRangePair("createdAt", from, to)
)de + à
between
de seulement
gte
à seulement
lte
aucun des deux
Retourne null, ce qui peut être naturellement exclu des conditions dynamiques.
Regroupement 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 prend en charge and, or, not, notAny, notAll et permet également de spécifier directement l'opérateur logique racine.
Règles de nom de champ et d'id
pair("id", value) // _id
pair("parent.id", value) // parent._id
pair("incidentId", value) // incidentId
pair("_id", value) // _idNormalise uniquement le segment de chemin id exact en _id. En passant une chaîne hexadécimale valide de 24 caractères à l'alias id, elle peut être convertie en ObjectId, mais une chaîne spécifiée directement pour _id n'est pas convertie automatiquement. Le chemin de champ de chaîne est basé sur le nom de champ physique MongoDB.
Filtre natif du pilote
.driverFilter(
Filters.and(
Filters.eq("status", "ACTIVE"),
Filters.size("tags", 3)
)
)
.end()
.findAll()
.execute();driverFilter(Bson) utilise la définition du pilote sans réinterpréter le BSON brut ou mapper les champs.