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?