Consultas MongoDB Like
Cuando accedemos a los datos de los campos de un documento en MongoDB podemos encontrarnos la necesidad de realizar consultas MongoDB like. Es decir, realizar consultas por cadenas similares de texto.
Por ejemplo, nombres que empiecen por una letra o letras, palabras que contengan una cierta cadena de caracteres…
Sintaxis de consultas Like
Sección titulada «Sintaxis de consultas Like»Las consultas MongoDB like se resuelven mediante expresiones regulares. Lo que realizaremos mediante la siguinte sintaxis:
db.coleccion.find({campo:expresión_regular});Para los patrones de las expresiones regulares MongoDB utiliza “Perl Compatible Regular Expressions” (PCRE).
Patrones de expresiones regulares
Sección titulada «Patrones de expresiones regulares»De esta forma tendremos las siguientes similitudes con los patrones LIKE:
| Patrón LIKE | Expresión Regular |
|---|---|
| cadena% | /^cadena/ |
| %cadena% | /cadena/ |
| %cadena | /cadena$/ |
undefined
Ejemplos de consultas
Sección titulada «Ejemplos de consultas»De esta forma la sentencia para realizar consultas MongoDB like será la siguiente:
cursor = db.ciudades.find({ciudad:/^M/});En este caso hemos realizado un filtro LIKE de ciudades que empiecen por M.
A la hora de utilizar las expresiones regulares, los índices solo se utilizarán de forma eficiente cuando utilizemos la forma /^cadena/
Otros ejemplos podrían ser ciudades que contengan una “r”:
cursor = db.ciudades.find({ciudad:/r/});O ciudades que acaben en d:
cursor = db.ciudades.find({ciudad:/d$/});Recorrer los resultados
Sección titulada «Recorrer los resultados»Ya solo nos quedará recorrer con un cursor el resultado para volcar los documentos devueltos por la expresión regular:
while (cursor.hasNext()) { printjson(cursor.next());}De esta forma vemos que es sencillo realizar consultas MongoDB Like.
Descarga el código de Consultas MongoDB Like
Aprende a realizar consultas MongoDB like para filtrar datos con expresiones regulares y optimiza tus búsquedas de manera efectiva y sencilla.