Píldoras Mongodb: operaciones básicas (Consultas)

Una de las cosas que dejé fuera del anterior artículo, por su extensión, son las consultas en MongoDB.

Sin embargo, sí que las llegamos a ver por encima, aunque no de forma consciente. Cuando usábamos el método find() para mostrar los documentos que tenía una colección, en realidad estábamos haciendo sin darnos cuenta, una consulta al servidor de mongodb para que nos mostrara esos documentos. Además de find(), podemos usar findOne() para que nos devuelva solo un documento como resultado.

Lo que debemos tener en cuenta, es que debemos pasar la condición que queramos que satisfaga nuestra query entre paréntesis. Por ejemplo, si queremos encontrar todas las películas dentro de la colección que ganaron un Premio Óscar (he añadido una que, si lo hizo, el resto no):

De la misma manera, podemos consultar cuáles de ellos no ganaron el Oscar:

Pero te estarás preguntando, ¿sólo puedo hacer consultas por el campo del documento? ¿nada más? ¿y si quiero que me muestre todos los campos que sean mayores o menores a un valor (filtrar por condiciones)? Pues también podemos, vamos a ver un ejemplo aprovechando el campo de año:

Nótese que pongo el año entre paréntesis porque realmente lo he puesto como string y no como campo numérico. Además, como en Shell Script, si queremos que sea menor que usamos lt (less than) y si queremos mayor (gt, greater than). También es posible usar otro tipo de operadores lógicos:

Otra función útil es sort(), que añadida a find (y a pretty), nos permite ordenar los resultados obtenidos en la query por un campo, de mayor a menor. Por ejemplo, si queremos mostrar las películas de la colección que son posteriores a 1980, mostrando primero las más viejas, usaríamos 1, y al revés, -1:

Hay infinidad de usos que les podéis dar a estos operadores en la vida real para conseguir queries complejas, espero que os haya gustado este artículo, de momento lo dejamos aquí. Espero que el siguiente sea de nuevo sobre Linux, o quizá me animo a subir apuntes y contenido del Azure PL-900…o mis apuntes del AZ-900, ya veremos, que esos son extensos, sería eterno…

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.