O MongoDB é um banco de dados NoSQL de código aberto que fornece suporte de alto desempenho, alta disponibilidade e fácil escalabilidade. Ele trabalha no conceito de coleções e documentos. Neste capítulo, vamos discutir como consultar documentos de uma coleção no MongoDB.
Uma das operações mais comuns que você precisará realizar em um banco de dados MongoDB é a consulta de documentos. A consulta é o processo de recuperar documentos de uma coleção. O MongoDB fornece uma série de métodos para realizar essa tarefa, um dos quais é o método findOne().
O método findOne() é usado para retornar um único documento que atende aos critérios especificados. Se vários documentos correspondem aos critérios, este método retorna o primeiro documento de acordo com a ordem natural, que reflete a ordem dos documentos no disco.
A sintaxe básica do método findOne() é a seguinte:
db.collection.findOne(query, projection)
Onde:
dbé o banco de dados atual.collectioné a coleção na qual você está procurando o documento.queryé um documento que especifica as condições de pesquisa. Este é um parâmetro opcional.projectioné um documento que especifica os campos a serem retornados no documento resultante. Este é um parâmetro opcional.
Vamos supor que temos a seguinte coleção de documentos:
{
    "_id": 1,
    "nome": "Maria",
    "idade": 25,
    "profissao": "Engenheira"
},
{
    "_id": 2,
    "nome": "João",
    "idade": 30,
    "profissao": "Médico"
},
{
    "_id": 3,
    "nome": "Ana",
    "idade": 35,
    "profissao": "Advogada"
}
Se quisermos encontrar o documento onde o campo "nome" é "Maria", podemos usar o método findOne() da seguinte maneira:
db.collection.findOne({"nome": "Maria"})
O resultado será o primeiro documento que corresponde à consulta:
{
    "_id": 1,
    "nome": "Maria",
    "idade": 25,
    "profissao": "Engenheira"
}
Agora, vamos dizer que queremos retornar apenas o campo "profissao" no documento resultante. Podemos fazer isso especificando o campo "profissao" no parâmetro de projeção:
db.collection.findOne({"nome": "Maria"}, {"profissao": 1})
O resultado será:
{
    "_id": 1,
    "profissao": "Engenheira"
}
Note que o campo "_id" é sempre retornado, a menos que você o exclua explicitamente.
O método findOne() é extremamente útil para recuperar um único documento de uma coleção. No entanto, lembre-se de que ele retorna o primeiro documento que corresponde à consulta. Se você precisa recuperar todos os documentos que correspondem à consulta, deve usar o método find().
Em resumo, o MongoDB fornece uma variedade de métodos para consultar documentos, cada um com seus próprios usos e vantagens. O método findOne() é apenas um desses métodos, mas é um dos mais comumente usados devido à sua simplicidade e eficácia.