Contagem de documentos
Visão geral
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");
Exemplo de countDocuments(): arquivo completo
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 3 import { MongoClient } from "mongodb"; 4 5 // Replace the uri string with your MongoDB deployment's connection string 6 const uri = "<connection string uri>"; 7 8 const client = new MongoClient(uri); 9 10 async 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 31 run().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
Documentação da API
Para saber mais sobre qualquer um dos tipos ou métodos discutidos neste guia, consulte a seguinte documentação da API: