Busquedas con Filter and Pagination
Búsquedas con Filters MongoDB
Proporciona una métodos para ejecutar operaciones con los operadores.
Se implementa en base a Filters utilizado en MongoDB
Sintaxis:
Método
Base de datos NoSQL
List < T > filters(Bson filter,Document... docSort)
MongoDB
List<T> filtersPagination(Bson filter, Integer pageNumber, Integer rowsForPage, Document... docSort)
Filtra con paginación
Nota:
La definición de los operados esta basado en la documentación de referencia de MongoDB.
Guía de referencias de Filters en MongoDB
http://mongodb.github.io/mongo-java-driver/3.0/builders/filters/
Se pueden pasar directamente al método.
Filtros
Comparación
Predicado
Descripción
eq
igual
gt
mayor que
gte
mayor o igual
lt
menor
lte
menor o igual
ne
no es igual
in
busca algún valor
nin
ninguno de los valores de un arreglo
Lógicas
Operador
Descripción
and
y
or
o
not
no
nor
selecciona todos los documentos que no cumplen las condiciones
Arrays
Operador
Descripción
all
Busca arreglos que contienen los elementos específicos en la consulta.
elemMatch
Selecciona todos los documentos si un elemento del array coincide con todo lo especificado en $elemMatch
size
Selecciona todos los documentos si el campo del array es un tamaño especifico.
Elementos
Operador
Descripción
exists
Selecciona documentos que tienen el campo específico
type
Selecciona todos los documentos tiene el campo de ee tipo
Evaluación
Operador
Descripción
mod
Performs a modulo operation on the value of a field and selects documents with a specified result.
regex
Selects documents where values match a specified regular expression
text
Selects documemts matching a full-text search expression
where
Matches documents that satisfy a JavaScript expression.
Enlaces oficiales en MongoDB https://docs.mongodb.com/manual/reference/operator/query/text/
Ejemplos Filtros
Filtrar por anio y mes
Busca el documento con Pais = Cuba sin ordenar
Filtra todos los documentos con logo = "" y los ordena por país.
AND Busca por la condicion logo = “” y poblacion =8579
OR Busca documentos con Logo =”” o Población 8579
Busca Población 8579 o Población 4567 o País = España o Siglas = cu
Ejemplos de Arrays
Selecciona todos los documentos con un arreglo Provincias que contienen ambas palabras "Los Santos" y "Herrera":
Ejemplos Elements
Busca que exista el campo Población y que no tenga valores de 0 o 8579
Filters con fecha
Filtrar llave primaria y la fecha de un dia sin tomar en cuanta las horas y minutos
Se usa con documentos donde el usuario al crearlos almacena fecha y hora.
Filtrar por año y mes
Filtros en un List<Entity> en posiciones diversas usando and y or
A veces necesitamos hacer filtros complejos sobre un List<>

Tenemos las clases
Si hacemos una consulta a la colección, List<Usuario>.

Deseamos filtrar en List<Usuario>, el encargado de tienda si observamos para algunas condiciones del subtipoorden, este estará en la posición 2 y para otras condiciones del subtipo de orden lo encontraremos en la posición 1.

Tendremos que crear un filtro complejo en el cual para obtener el usuario.#.username puede ser 1 o 2 dependiendo de las condiciones :;
posición
subtipoorden
2
tiendaabodega
2
bodegaatienda
2
bodegaainterno
2
internoabodega
1
tiendaainterno
1
iternoatienda
En este caso lo encontramos en la posición 1 al encargado de tienda ya que subtipoorden="tiendaainterno"

En el caso que el sutipoorden=""tiendaabodega" el encargado de tienda estara en la posiciòn 2:

Creamos los filtros para que busque en la posición 2 o 1 en base al valor de subtipoorden.,

Filtros directos
Last updated
Was this helpful?