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