Consultar documentos en MongoDB es una tarea esencial para cualquier desarrollador que trabaje con esta base de datos NoSQL. La consulta se realiza utilizando el método find() y se puede refinar mediante proyección de campo, que le permite especificar los campos que deben devolverse en la consulta. Este capítulo de nuestro libro electrónico cubrirá la consulta de documentos en MongoDB y la proyección de campos en consultas.
Primero, comprendamos qué es una consulta. En MongoDB, una consulta es una operación que recupera documentos de una colección; es decir, extrae datos de la base de datos. Una consulta puede devolver todos los documentos de una colección o solo documentos que cumplan condiciones específicas.
Para realizar una consulta en MongoDB, utilizamos el método find(). Este método recibe dos parámetros: la condición de consulta y la proyección del campo. La condición de consulta es un documento que especifica las condiciones que deben cumplir los documentos para ser devueltos por la consulta. La proyección de campo es un documento que especifica qué campos deben devolverse en documentos que cumplen con la condición de consulta.
Por ejemplo, para consultar todos los documentos de una colección, puede utilizar el método find() sin parámetros, como se muestra a continuación:
db.colección.find()
Si desea consultar documentos que cumplen una condición específica, puede pasar esa condición como primer parámetro al método find(). Por ejemplo, la siguiente consulta devuelve todos los documentos cuyo campo "edad" sea mayor que 20:
db.collection.find({ "edad": { "$gt": 20 } })
Ahora, hablemos de la proyección de campo. La proyección de campos es una forma de especificar qué campos deben devolverse en documentos que cumplan con la condición de consulta. De forma predeterminada, todas las consultas en MongoDB devuelven todos los campos de cada documento. Sin embargo, en muchos casos es posible que desee limitar los campos devueltos para reducir la cantidad de datos transferidos desde la base de datos al cliente.
Para especificar la proyección de campos, puede pasar un segundo parámetro al método find(). Este parámetro es un documento que enumera los campos que se devolverán. Por ejemplo, la siguiente consulta devuelve sólo el campo "nombre" y el campo "_id" para todos los documentos cuyo campo "edad" sea mayor que 20:
db.collection.find({ "edad": { "$gt": 20 } }, { "nombre": 1 })
Tenga en cuenta que el campo "_id" siempre se devuelve a menos que se excluya explícitamente. Para eliminar un campo, puede establecer su valor en 0 en la proyección del campo. Por ejemplo, la siguiente consulta devuelve sólo el campo "nombre" para todos los documentos cuyo campo "edad" sea mayor que 20:
db.collection.find({ "edad": { "$gt": 20 } }, { "nombre": 1, "_id": 0 })
En resumen, la consulta de documentos y la proyección de campos son operaciones fundamentales en MongoDB. Con el método find() y la proyección de campo, puede recuperar datos de MongoDB de manera eficiente y flexible. En el próximo capítulo, cubriremos la actualización de documentos, otra operación esencial en MongoDB.