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

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

Conditions dynamiques et autoRangePair

java
.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

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 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

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

Normalise 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

java
.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.

© 2026 Byeolnaerim. Tous droits réservés.PrésentationPolitique de confidentialité