Búsquedas Expresiones Regulares (Patrones Like)

Búsquedas Expresiones Regulares (Regex)

Se utilizan para consultas mediante patrones. Funcionan de manera similar a las sentencias like en el modelo relacional en donde generalmente usamos el comodín "%s" para ampliar las operaciones de búsquedas.

Es una implementación de regex en mongodb

https://docs.mongodb.com/manual/reference/operator/query/regex

Método:

Método

Bases de datos NoSQL (MongoDB)

public List< T > findRegex(String key, String value, Document... docSort)

MongoDB

Busca en el texto desde el inicio que coincida con la expresion

public List<T> findRegexInText(String key, String value, Boolean caseSensitive, Document... docSort)

MongoDB

Busca en cualquier parte del Texto

public List<T> findRegexPagination(String key, String value, Boolean caseSensitive, Integer pageNumber, Integer rowsForPage,Document... docSort)

MongoDB

Busca en el texto desde el inicio que coincida con la expresión con paginación.

public List<T> findRegexInTextPagination(String key, String value, Boolean caseSensitive, Integer pageNumber, Integer rowsForPage, Document... docSort)

MongoDB

Busca en cualquier parte del texto con paginación

Filtros agregando por una condición and adicional(String keySecond,String valueSecond)

List<T> findRegex(String key, String value, Boolean caseSensitive, String keySecond,String valueSecond,Document... docSort)

MongoDB

Busca en el texto desde el inicio que coincida con la expresión y agrega un filtro and adicional por otro atributo.

List<T> findRegexInText(String key, String value, Boolean caseSensitive, String keySecond,String valueSecond, Document... docSort)

MongoDB

Busca en cualquier parte del texto agregando un filtro and por otro atributo.

List<T> findRegexPagination(String key, String value, Boolean caseSensitive,String keySecond,String valueSecond, Integer pageNumber, Integer rowsForPage,Document... docSort)

MongoDB

Busca en el texto desde el inicio que coincida con la expresión con paginación, agregando un filtro and por otro atributo.

List<T> findRegexInTextPagination(String key, String value, Boolean caseSensitive, String keySecond,String valueSecond,Integer pageNumber, Integer rowsForPage, Document... docSort)

MongoDB

Busca en cualquier parte del texto agregando un filtro and adicional por otro atributo y aplica paginación.

Filtros agregando por una condición and adicional(String keySecond,Object valueSecond). El valueSecond puede ser tipo String, Integer, Double, Date.

List<T> findRegex(String key, String value, Boolean caseSensitive, String keySecond, Object valueSecond, Document... docSort)

MongoDB

Busca en el texto desde el inicio que coincida con la expresión y agrega un filtro and adicional por otro atributo.

Filtros agregando dos condiciónes and adicional(String keySecond,Object valueSecond,Object keyThree, String valueTree)

Filtros agregando dos condiciónes and adicional(String keySecond,String valueSecond,String keyThree, String valueTree)

List<T> findRegex(String key, String value, Boolean caseSensitive, String keySecond, String valueSecond, String keyThree, String valueTree, Document... docSort)

MongoDB

Busca en el texto desde el inicio que coincida con la expresión y agrega dos flltros and adicionales

List<T> findRegexInText(String key, String value, Boolean caseSensitive, String keySecond, String valueSecond,String keyThree, String valueTree, Document... docSort)

MongoDB

Busca en cualquier parte del texto agregando dos filtros and adicionales.

List<T> findRegexPagination(String key, String value, Boolean caseSensitive, String keySecond, String valueSecond, String keyThree, String valueThree,Integer pageNumber, Integer rowsForPage, Document... docSort)

MongoDB

Busca en el texto desde el inicio que coincida con la expresión con paginación, agregando dos filtros and adicionales.

List<T> findRegexInTextPagination(String key, String value, Boolean caseSensitive, String keySecond, String valueSecond,String keyThree, String valueThree, Integer pageNumber, Integer rowsForPage, Document... docSort)

MongoDB

Busca en cualquier parte del texto agregando dos filtros and adicional por otro atributo y aplica paginación.

Nota: Para bases de datos couchbase puede ser el método find() en el statement puede colocar el filtro.

$regex

Simbolo

$regex: "Pa"

Busca que tengan el carácter Pa

^pana$

Busca el texto que inicia ^ y termina $

$options

Simbolo

i

Busca sin importar en mayúscula y minúscula

Ejemplo MongoDB:

Buscar un país que inicie con pan.

Buscar un país que inicie con pan y que activo =si

Buscar un país que inicie con pan y devuelva la lista de entitys ordenados

Filtra por la expresión regular. grupo que inicia por Mx y que activo sea igual a si

Busca en el documento referenciado "articulo.idarticulo", que inicie por el valor en el atributo query.

Ejemplo con Filter(Busca por expresion regular en articulo.idarticulo y aplica dos filtros más (Solo String para otros tipos de valores use Filter)

Ejemplo con Filter(Busca por expresion regular en articulo.idarticulo y aplica dos filtros más

Creamos una colección llamada aulas

Mostrar todos

Resultado

Buscar los que inician con CE

Resultado

Buscar CE-13

Resultado

Usando / / buscar todos que inicien con CE-

Resultado

Buscar cE-1 exactamente

Resultado

Vacio no devuelve nada porque no existe cE-1 existe CE-1

Buscar cE-1 ignorando mayúsculas y minúsculas

Resultado

Ejemplo de uso

Busca las aulas que tengan los caracteres ce, el parámetro true indica que se pueda buscar sin importar mayúscula o minúsculas.

List<Aulas> list = aulasFacade.findRegex("idaula", "ce",true,new Document("idaula",1));

Uso con autocomplete

Ejemplo de autocompletes relacionados con findRegex()

El autocomplete distrito depende al autocomplete provincia

Crear los autocomplete

  • El segundo autocomplete el método complete se personaliza en el controller

Segmento Controller

  • En el parámetro adicional colocamos el documento referenciado.

Last updated

Was this helpful?