Campos y Criterios

Configura condiciones dinámicas de MongoDB usando FieldsPair, Condition, agrupación lógica, alias de id y filtro nativo del controlador.


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

Condiciones dinámicas y autoRangePair

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

de + a

between

solo de

gte

solo a

lte

Ninguno de los dos

Devuelve null, por lo que se puede excluir naturalmente de las condiciones dinámicas.

Agrupación 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 admite and, or, not, notAny, notAll y también se puede especificar directamente el operador lógico raíz.

Reglas de nombre de campo e id

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

Solo normaliza segmentos de ruta id exactos a _id. Se puede pasar un String hexadecimal válido de 24 caracteres a un alias de id para convertirlo a ObjectId, pero un String especificado directamente como _id no se convierte automáticamente. La ruta del campo String se basa en el nombre del campo físico de MongoDB.

Filtro nativo del controlador

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

driverFilter(Bson) utiliza la definición del controlador sin reinterpretar el BSON crudo o hacer mapeo de campos.

© 2026 Byeolnaerim. Todos los derechos reservados.IntroducciónPolítica de privacidad