Menu Docs
Página inicial do Docs
/ / /
Node.js
/ /

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().

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.

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 objeto title e imdb (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 } }

Voltar

Encontrar operações