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
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
.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
.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
pair("id", value) // _id
pair("parent.id", value) // parent._id
pair("incidentId", value) // incidentId
pair("_id", value) // _idSolo 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
.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.