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 consulta vazio, o
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, o countDocuments() aceita um parâmetro de query. 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 de conexão. Este exemplo também usa a coleção movies no banco de dados sample_mflix incluído nos conjuntos de dados de amostra do Atlas. Você pode carregá-los em seu banco de dados em um cluster gratuito no MongoDB Atlas seguindo o MongoDB Get Started.
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 :
// Count documents in a collection
import { MongoClient } from "mongodb";
// Replace the uri string with your MongoDB deployment's connection stringconst uri = "<connection string uri>";
const client = new MongoClient(uri);
async function run() { try { const database = client.db("sample_mflix"); const movies = database.collection("movies");
/* Print the estimate of the number of documents in the "movies" collection */ const estimate = await movies.estimatedDocumentCount(); console.log(`Estimated number of documents in the movies collection: ${estimate}`);
/* Print the number of documents in the "movies" collection that match the specified query */ const query = { countries: "Canada" }; const countCanada = await movies.countDocuments(query); console.log(`Number of movies from Canada: ${countCanada}`); } finally { // Close the connection after the operations complete await client.close(); }}// Run the program and print any thrown exceptionsrun().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: 23541Number of movies from Canada: 1349Documentação da API
Para saber mais sobre qualquer um dos tipos ou métodos discutidos neste guia, consulte a seguinte documentação da API: