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.
Menu Docs

Contagem de documentos

Neste guia, você pode aprender como recuperar uma contagem exata e estimada do número de documentos em uma coleção.

Os exemplos neste guia usam a collection sample_restaurants.restaurants dos conjuntos de dados de amostra do Atlas. Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte Introdução.

Importante

Biblioteca do Reator do Projeto

Este guia usa a biblioteca Project Reactor para consumir instâncias do Publisher retornadas pelos métodos de driver Java Reactive Streams. Para saber mais sobre a biblioteca do Projeto Reactor e como usá-la, consulte Introdução na documentação do Reactor. Para saber mais sobre como usamos os métodos da biblioteca do Project Reactor neste guia, consulte o guia Gravar dados no MongoDB.

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

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

Para retornar uma contagem de todos os documentos na coleção, chame o método countDocuments() e não passe nenhum parâmetro, conforme mostrado no exemplo a seguir:

Publisher<Long> countPublisher = restaurants.countDocuments();
Mono.from(countPublisher).doOnNext(System.out::println).blockLast();

Para retornar uma contagem de documentos que correspondam a critérios de pesquisa específicos, especifique sua query no método countDocuments() , conforme mostrado no exemplo a seguir. Para saber mais sobre como especificar uma query, consulte o guia Especificar uma query .

Publisher<Long> countPublisher = restaurants.countDocuments(
eq("cuisine", "Italian"));
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

Você pode modificar o comportamento do método countDocuments() passando parâmetros opcionais para o método. A classe CountOptions fornece métodos que modificam o comportamento do método countDocuments() . Para usar a classe CountOptions , construa uma nova instância da classe e chame um ou mais de seus métodos para modificar a operação de contagem. Você pode encadear essas chamadas de método.

Para modificar o comportamento da operação de contagem, passe a instância de classe e as chamadas de método encadeadas como o último argumento para o método countDocuments() .

A tabela a seguir descreve os métodos na classe CountOptions :

Método
Descrição

collation(Collation collation)

Especifica o tipo de agrupamento de idiomas a ser usado ao classificar os resultados. Para obter mais informações, consulte Agrupamento no manual do MongoDB Server .

comment(BsonValue comment)

Anexa um comentário BsonValue à operação. Para obter mais informações, consulte o guia de campos de comando de inserção no manual do MongoDB Server .

comment(String comment)

Anexa um comentário String à operação. Para obter mais informações, consulte o guia de campos de comando de inserção no manual do MongoDB Server .

hint(Bson hint)

Define o índice para a operação como um valor Bson. Para obter mais informações, consulte a declaração de dica no manual do MongoDB Server .

hintString(String hint)

Define o índice para a operação como um valor String. Para obter mais informações, consulte a declaração de dica no manual do MongoDB Server .

limit(int limit)

Define um limite para o número máximo de documentos que o cursor retorna. Para obter mais informações,consulte cursor na documentação do MongoDB Server .

skip(int skip)

Define o número de documentos que a query ignora antes de retornar resultados. Para obter mais informações, consulte pular no manual do MongoDB Server .

O código a seguir usa o método countDocuments() para contar todos os documentos na coleção restaurants com um valor cuisine de "Italian". Ele também anexa o comentário "Count all Italian restaurants" à operação como String.

Publisher<Long> countPublisher = restaurants.countDocuments(
eq("cuisine", "Italian"),
new CountOptions().comment("Count all Italian restaurants"));
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

Você pode obter uma estimativa do número de documentos em uma coleção ligando para o método estimatedDocumentCount() . O método estima o número 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:

Publisher<Long> countPublisher = restaurants.estimatedDocumentCount();
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

Você pode modificar o comportamento do método estimatedDocumentCount() passando parâmetros opcionais para o método. A classe EstimatedDocumentCountOptions fornece métodos que modificam o comportamento do método estimatedDocumentCount() . Para usar a classe EstimatedDocumentCountOptions , construa uma nova instância da classe e chame um ou mais de seus métodos para modificar a operação de contagem. Você pode encadear essas chamadas de método.

Para modificar o comportamento da operação de contagem, passe a instância de classe e as chamadas de método encadeadas como o único argumento para o método estimatedDocumentCount() .

A tabela a seguir descreve as opções que você pode definir para personalizar estimatedDocumentCount():

Propriedade
Descrição

comment(BsonValue comment)

Anexa um comentário BsonValue à operação. Para obter mais informações, consulte o guia de campos de comando de inserção no manual do MongoDB Server .

comment(String comment)

Anexa um comentário String à operação. Para obter mais informações, consulte o guia de campos de comando de inserção no manual do MongoDB Server .

O código a seguir usa o método estimatedDocumentCount() para estimar a contagem de documentos na coleção restaurants . Ele também anexa "Estimated count of all documents" à operação como String.

Publisher<Long> countPublisher = restaurants.estimatedDocumentCount(
new EstimatedDocumentCountOptions()
.comment("Estimated count of all documents"));
Mono.from(countPublisher)
.doOnNext(System.out::println)
.blockLast();

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