Introducción

En SQL, nosotros podemos utilizar el operador LIKE para buscar coincidencias en donde la celda tenga una porción de una cadena. En este post voy a explicar cómo hacer un like en MongoDB, es decir, el equivalente a la cláusula LIKE de SQL pero aplicada a MongoDB.

Por ejemplo, suponiendo que hay una tabla de clientes así:

Y queremos consultar a aquellos cuyo nombre contenga la cadena “ra” haríamos una consulta así:

SELECT * FROM clientes WHERE nombre LIKE "%ra%";

Lo que devolvería algo como:

Ahora veamos cómo hacer eso con MongoDB.

Operador LIKE en MongoDB

Respuesta corta

La consulta quedaría así:

db.tu_coleccion.find({"campo": /.*busqueda.*/});

Y si quieres que ignore si son mayúsculas o minúsculas, así:

db.tu_coleccion.find({"campo": /.*busqueda.*/i});

Ejemplo

Muy fácil, suponiendo que tenemos una colección (de clientes) así:

Colección de clientes en MongoDB

Colección de clientes en MongoDB

Podemos buscar, de nuevo, aquellos que tenga “ra” con la siguiente consulta:

db.clientes.find({
    "Nombre": /.*ra.*/
  }
);

Con estos resultados:

Resultados de consulta LIKE en MongoDB

Resultados de consulta LIKE en MongoDB

Si queremos que sea insensitivo a mayúsculas (que devuelva aquellos en donde diga ra, Ra, rA o RA) entonces modificaríamos la consulta así:

db.clientes.find({
    "Nombre": /.*ra.*/i
  }
);

Básicamente es una expresión regular de JavaScript 😉

Apoya al sitio

¿Mi artículo te ha resultado útil? haz una donación. También pudes suscribirte a mi boletín semanal en la parte de abajo

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 332 suscriptores

Relacionado:  Instalar extensión de MongoDB para PHP


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

0 Comments

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: