Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Contagem de documentos

Neste guia, você pode aprender como usar o driver C++ para recuperar uma contagem precisa e estimada do número de documentos em uma coleção. O método count_documents() retorna o número exato de documentos que correspondem a um filtro de query ou que existem em uma collection, e o método estimated_document_count() retorna o número estimado de documentos em uma collection.

Os exemplos neste guia usam a collection companies no banco de dados sample_training dos conjuntos de banco de dados de amostra do Atlas. Para acessar essa coleção a partir do seu aplicação C++ , instancie um mongocxx::client que se conecte a um Atlas cluster e atribua os seguintes valores às suas variáveis db e collection :

auto db = client["sample_training"];
auto collection = db["companies"];

Para aprender a criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o Guia de Introdução do MongoDB.

Use o método count_documents() para contar o número de documentos que estão em uma coleção. Para contar o número de documentos que correspondem a um critério de pesquisa específico, passe um documento de filtro de query para o método count_documents() .

Para saber mais sobre como especificar uma query, consulte o guia Especificar uma Consulta .

Para retornar uma contagem de todos os documentos na collection, passe um documento filtro vazio para o método count_documents() , conforme mostrado no exemplo a seguir:

auto result = collection.count_documents({});
std::cout << "Number of documents: " << result << std::endl;
Number of documents: 9500

Para retornar uma contagem de documentos que correspondam a critérios de pesquisa específicos, passe seu documento de filtro de query para o método count_documents() .

O exemplo a seguir conta o número de documentos que têm 2010 founded_year de :

auto result = collection.count_documents(make_document(kvp("founded_year", 2010)));
std::cout << "Number of companies founded in 2010: " << result << std::endl;
Number of companies founded in 2010: 33

Você pode modificar o comportamento do método count_documents() passando uma instância da classe mongocxx::options::count como parâmetro. A tabela seguinte descreve os campos que você pode definir em uma instância do mongocxx::options::count :

Campo
Descrição

collation

O agrupamento a ser usado para a operação.
Tipo: bsoncxx::document::view_or_value

hint

O índice a ser usado para a operação.
Tipo: mongocxx::hint

comment

O comentário a ser anexado à operação.
Tipo: bsoncxx::types::bson_value::view_or_value

limit

O número máximo de documentos para contar. Esse valor deve ser um número inteiro positivo.
Tipo: std::int64_t

max_time

A quantidade máxima de tempo em milissegundos que a operação pode executar.
Tipo: std::chrono::milliseconds

skip

O número de documentos a ignorar antes de contar os documentos.
Tipo: std::int64_t

read_preference

A preferência de leitura a ser usada na operação.
Tipo: mongocxx::read_preference

O exemplo a seguir usa o método count_documents() para contar o número de documentos nos quais o campo number_of_employees tem o valor 50 e instrui a operação a contar um máximo de 100 resultados:

mongocxx::options::count opts;
opts.limit(100);
auto result = collection.count_documents(make_document(kvp("number_of_employees", 50)), opts);
std::cout << "Number of companies with 50 employees: " << result << std::endl;
Number of companies with 50 employees: 100

Você pode recuperar uma estimativa do número de documentos em uma coleção ligando para o método estimated_document_count() . O método estima a quantidade de documentos com base nos metadados da collection, o que pode ser mais rápido do que realizar uma contagem precisa.

O exemplo a seguir estima o número de documentos em uma coleção:

auto result = collection.estimated_document_count();
std::cout << "Estimated number of documents: " << result << std::endl;
Estimated number of documents: 9500

Você pode modificar o comportamento do método estimated_document_count() passando uma instância da classe mongocxx::options::estimated_document_count como parâmetro. A tabela seguinte descreve os campos que você pode definir em uma instância do mongocxx::options::estimated_document_count :

Campo
Descrição

max_time

A quantidade máxima de tempo em milissegundos que a operação pode executar.
Tipo: std::chrono::milliseconds

comment

O comentário a ser anexado à operação.
Tipo: bsoncxx::types::bson_value::view_or_value

read_preference

A preferência de leitura a ser usada na operação.
Tipo: mongocxx::read_preference

O exemplo a seguir usa o método estimated_document_count() para retornar uma estimativa do número de documentos na coleção e instrui a operação a ser executada por no máximo 1000 milissegundos:

mongocxx::options::estimated_document_count opts;
opts.max_time(std::chrono::milliseconds{1000});
auto result = collection.estimated_document_count(opts);
std::cout << "Estimated number of documents: " << result << std::endl;
Estimated number of documents: 9500

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