Encontrar um documento
Você pode consultar um único documento em uma coleção com o método collection.findOne()
. O método findOne()
utiliza um documento de query fornecido por você para corresponder somente ao subconjunto de documentos da coleção que correspondem à query. Se você não fornecer um documento de query ou se fornecer um documento vazio, o MongoDB corresponderá a todos os documentos na coleção. A operação findOne()
retorna apenas o primeiro documento correspondente. Para obter mais informações sobre query do MongoDB, consulte nossa documentação do sobre documentos de query.
Você também pode definir query adicionais, como sort e projection, para configurar o documento retornado. Você pode especificar as opções adicionais no objeto options
passado como o segundo parâmetro do método findOne
. Para obter documentação de referência detalhada, consulte collection.findOne().
Compatibilidade
Você pode utilizar o driver Node.js para conectar e utilizar o método findOne()
para implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Para saber mais sobre como localizar documentos na IU do Atlas para implantações hospedadas no MongoDB Atlas, consulte Criar, Visualizar, Atualizar e Excluir Documentos.
Exemplo
O trecho a seguir encontra um único documento da coleção movies
. Ele usa os seguintes parâmetros:
Um documento de query que configura a query para retornar apenas filmes com o título exatamente do texto
'The Room'
.Uma classificação que organiza os documentos correspondentes em ordem decrescente por classificação. Portanto, se nossa query corresponder a vários documentos, o documento devolvido será o documento com a classificação mais alta.
Uma projeção que exclui explicitamente o campo
_id
dos documentos retornados e inclui explicitamente somente o objetotitle
eimdb
(e seus campos embutidos).
Observação
Você pode utilizar este exemplo para se conectar a uma instância do MongoDB e interagir com um banco de dados que contém dados de amostra. Para saber mais sobre como se conectar à sua instância do MongoDB e carregar um conjunto de dados de amostra, consulte o Guia de exemplos de uso.
import { MongoClient } from "mongodb"; // Replace the uri string with your MongoDB deployment's connection string. const uri = "<connection string uri>"; const client = new MongoClient(uri); async function run() { try { // Get the database and collection on which to run the operation const database = client.db("sample_mflix"); const movies = database.collection("movies"); // Query for a movie that has the title 'The Room' const query = { title: "The Room" }; const options = { // Sort matched documents in descending order by rating sort: { "imdb.rating": -1 }, // Include only the `title` and `imdb` fields in the returned document projection: { _id: 0, title: 1, imdb: 1 }, }; // Execute query const movie = await movies.findOne(query, options); // Print the document returned by findOne() console.log(movie); } finally { await client.close(); } } run().catch(console.dir);
import { MongoClient } from "mongodb"; // Replace the uri string with your MongoDB deployment's connection string. const uri = "<connection string uri>"; const client = new MongoClient(uri); interface IMDB { rating: number; votes: number; id: number; } export interface Movie { title: string; year: number; released: Date; plot: string; type: "movie" | "series"; imdb: IMDB; } type MovieSummary = Pick<Movie, "title" | "imdb">; async function run(): Promise<void> { try { const database = client.db("sample_mflix"); // Specifying a Schema is always optional, but it enables type hinting on // finds and inserts const movies = database.collection<Movie>("movies"); const movie = await movies.findOne<MovieSummary>( { title: "The Room" }, { sort: { rating: -1 }, projection: { _id: 0, title: 1, imdb: 1 }, } ); console.log(movie); } finally { await client.close(); } } run().catch(console.dir);
Se você executar o exemplo anterior, verá a seguinte saída:
{ title: 'The Room', imdb: { rating: 3.5, votes: 25673, id: 368226 } }