En mongo podemos hacer consultas extremadamente sencillas pero sobre todo ágiles.
Por ejemplo, pensemos que dentro de nuestra colección miembros necesitamos traer todos los documentos que contengan dentro del campo email (un array) por lo menos un correo electrónico. Tendríamos que correr el siguiente query:
> db.miembros.find({"email": {$exists: true, $not: {$size: 0}}}, {})
Ahora bien, pensémos que por alguna razón desconocida, los datos en los documentos tienen alguna inconsistencia como por ejemplo a alguien se le ocurrió guardarlos en la siguiente notación:
email: ["","email@domain.com", "", ""]
¿Qué desastre verdad?, aún así, en el momento en que estas intentando sacar un conjunto de datos, lo que requieres es acceder al menos a las colecciones que por lo menos tiene 1 correo electrónico dentro. Entonces tendríamos que añadir lo siguiente al query anterior:
> db.miembros.find({"email": {$exists: true, $not: {$size: 0}, $ne: ""}}, {})
Si estamos trabajando con millones de datos, quizá te convenga añadir al final del la sentencia un .limit(N), donde N es un número entero positivo, 10 es un buen número.
Comentarios
Publicar un comentario