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

Contagem de documentos

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_" });

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.

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.

1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8async function run() {
9 try {
10 const database = client.db("sample_mflix");
11 const movies = database.collection("movies");
12
13 // Estimate the total number of documents in the collection
14 // and print out the count.
15 const estimate = await movies.estimatedDocumentCount();
16 console.log(`Estimated number of documents in the movies collection: ${estimate}`);
17
18 // Query for movies from Canada.
19 const query = { countries: "Canada" };
20
21 // Find the number of documents that match the specified
22 // query, (i.e. with "Canada" as a value in the "countries" field)
23 // and print out the count.
24 const countCanada = await movies.countDocuments(query);
25 console.log(`Number of movies from Canada: ${countCanada}`);
26 } finally {
27 await client.close();
28 }
29}
30run().catch(console.dir);
1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8async function run() {
9 try {
10 const database = client.db("sample_mflix");
11 const movies = database.collection("movies");
12
13 // Estimate the total number of documents in the collection
14 // and print out the count.
15 const estimate = await movies.estimatedDocumentCount();
16 console.log(`Estimated number of documents in the movies collection: ${estimate}`);
17
18 // Query for movies from Canada.
19 const query = { countries: "Canada" };
20
21 // Find the number of documents that match the specified
22 // query, (i.e. with "Canada" as a value in the "countries" field)
23 // and print out the count.
24 const countCanada = await movies.countDocuments(query);
25 console.log(`Number of movies from Canada: ${countCanada}`);
26 } finally {
27 await client.close();
28 }
29}
30run().catch(console.dir);

Observação

Trechos de código idênticos

Os trechos de código JavaScript e TypeScript acima são idênticos. Não existem características específicas do TypeScript do condutor relevantes para este caso de utilização.

Se você executar o código de amostra anterior, verá a seguinte saída:

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

Voltar

Excluir vários documentos