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í:
Podemos buscar, de nuevo, aquellos que tenga “ra” con la siguiente consulta:
db.clientes.find({ "Nombre": /.*ra.*/ } );
Con estos resultados:
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 😉
Que pasaría en la consulta del tipo SELECT * FROM clientes WHERE nombre LIKE “%ra% OR WHERE apellido LIKE “%ra%”; Te agradezco. Saludos.