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

Contagem de documentos

Neste guia, você pode aprender a contar o número de documentos em suas coleções MongoDB . O driver Node.js oferece dois métodos para contar documentos em uma collection:

  • collection.countDocuments() Retorna o número de documentos na coleção que correspondem à query especificada. Se você especificar um documento de query vazio, countDocuments() retornará o número total de documentos na coleção.

  • coleção.estimatedDocumentCount() retorna uma estimativa do número de documentos na coleção com base nos metadados da coleção.

estimatedDocumentCount() é mais rápido do que countDocuments() porque a estimativa utiliza os metadados da coleção em vez de analisar a coleção. Em contraste, o countDocuments() leva mais tempo para retornar, mas fornece uma contagem precisa do número de documentos e suporta a especificação de um filtro. Escolha o método apropriado para sua carga de trabalho.

Para especificar quais documentos você deseja contar, countDocuments() aceita um parâmetro dequery . countDocuments() conta os documentos que correspondem à query especificada.

countDocuments() e o estimatedDocumentCount() suporta configurações opcionais que afetam a execução do método. Consulte a documentação de referência para cada método para obter mais informações.

Dica

Você pode melhorar o desempenho ao utilizar o countDocuments() para retornar o número total de documentos em uma coleção evitando uma verificação da coleção. Para fazer isso, use uma dica para aproveitar o índice interno no campo _id. Utilize esta técnica somente ao chamar countDocuments() com um parâmetro de query vazio.

collection.countDocuments({}).hint("_id");

Observação

Exemplo de configuração

Esse exemplo se conecta a uma instância do MongoDB usando um URI de conexão. Para saber mais sobre como se conectar à sua instância do MongoDB, consulte o guia Conectar ao MongoDB. Este exemplo também utiliza a coleção do movies no banco de dados do sample_mflix incluído nos conjuntos de dados de amostra do Atlas. Você pode carregá-los em seu banco de dados na camada grátis do MongoDB Atlas seguindo o Guia de Introdução ao Atlas.

Observação

Nenhum recurso específico do Typescript

O seguinte exemplo de código utiliza JavaScript. Não existem características específicas do Typescript do condutor relevantes para este caso de utilização.

O exemplo a seguir estima o número de documentos na collection movies no banco de dados sample_mflix e, em seguida, retorna uma contagem precisa do número de documentos na collection movies com Canada no campo countries :

1// Count documents in a collection
2
3import { MongoClient } from "mongodb";
4
5// Replace the uri string with your MongoDB deployment's connection string
6const uri = "<connection string uri>";
7
8const client = new MongoClient(uri);
9
10async function run() {
11 try {
12 const database = client.db("sample_mflix");
13 const movies = database.collection("movies");
14
15 /* Print the estimate of the number of documents in the
16 "movies" collection */
17 const estimate = await movies.estimatedDocumentCount();
18 console.log(`Estimated number of documents in the movies collection: ${estimate}`);
19
20 /* Print the number of documents in the "movies" collection that
21 match the specified query */
22 const query = { countries: "Canada" };
23 const countCanada = await movies.countDocuments(query);
24 console.log(`Number of movies from Canada: ${countCanada}`);
25 } finally {
26 // Close the connection after the operations complete
27 await client.close();
28 }
29}
30// Run the program and print any thrown exceptions
31run().catch(console.dir);

A execução do código de amostra anterior resulta na seguinte saída:

Estimated number of documents in the movies collection: 23541
Number of movies from Canada: 1349

Para saber mais sobre qualquer um dos tipos ou métodos discutidos neste guia, consulte a seguinte documentação da API:

Voltar

Especificar uma query

Nesta página