Consultar documentos no MongoDB é uma tarefa essencial para qualquer desenvolvedor que trabalha com esse banco de dados NoSQL. A consulta é realizada através do método find() e pode ser refinada através da projeção de campos, o que permite especificar os campos que devem ser retornados na consulta. Este capítulo do nosso e-book abordará a consulta de documentos no MongoDB e a projeção de campos em consultas.
Primeiro, vamos entender o que é uma consulta. No MongoDB, uma consulta é uma operação que recupera documentos de uma coleção; isto é, extrai dados do banco de dados. Uma consulta pode retornar todos os documentos em uma coleção ou apenas os documentos que atendem a condições específicas.
Para realizar uma consulta no MongoDB, usamos o método find(). Este método recebe dois parâmetros: a condição de consulta e a projeção de campos. A condição de consulta é um documento que especifica as condições que os documentos devem atender para serem retornados pela consulta. A projeção de campos é um documento que especifica quais campos devem ser retornados nos documentos que atendem à condição de consulta.
Por exemplo, para consultar todos os documentos em uma coleção, você pode usar o método find() sem parâmetros, como mostrado abaixo:
db.collection.find()
Se você quiser consultar documentos que atendem a uma condição específica, você pode passar essa condição como o primeiro parâmetro para o método find(). Por exemplo, a seguinte consulta retorna todos os documentos cujo campo "idade" é maior que 20:
db.collection.find({ "idade": { "$gt": 20 } })
Agora, vamos falar sobre a projeção de campos. A projeção de campos é uma maneira de especificar quais campos devem ser retornados nos documentos que atendem à condição de consulta. Por padrão, todas as consultas no MongoDB retornam todos os campos em cada documento. No entanto, em muitos casos, você pode querer limitar os campos retornados para reduzir a quantidade de dados transferidos do banco de dados para o cliente.
Para especificar a projeção de campos, você pode passar um segundo parâmetro para o método find(). Este parâmetro é um documento que lista os campos a serem retornados. Por exemplo, a seguinte consulta retorna apenas o campo "nome" e o campo "_id" para todos os documentos cujo campo "idade" é maior que 20:
db.collection.find({ "idade": { "$gt": 20 } }, { "nome": 1 })
Observe que o campo "_id" é sempre retornado, a menos que seja explicitamente excluído. Para excluir um campo, você pode definir seu valor para 0 na projeção de campos. Por exemplo, a seguinte consulta retorna apenas o campo "nome" para todos os documentos cujo campo "idade" é maior que 20:
db.collection.find({ "idade": { "$gt": 20 } }, { "nome": 1, "_id": 0 })
Em resumo, a consulta de documentos e a projeção de campos são operações fundamentais no MongoDB. Com o método find() e a projeção de campos, você pode recuperar dados do MongoDB de maneira eficiente e flexível. No próximo capítulo, abordaremos a atualização de documentos, outra operação essencial no MongoDB.