Contagem de documentos
Nesta página
- Visão geral
- Dados de amostra
- Recuperar uma contagem exata
- Contagem de todos os documentos
- Contagem de documentos específicos
- Personalizar comportamento de contagem
- Exemplo de modificação de contagem
- Recuperar uma contagem estimada
- Personalizar comportamento de contagem estimada
- Exemplo de modificação de contagem estimada
- Documentação da API
Visão geral
Neste guia, você pode aprender como recuperar uma contagem exata e estimada do número de documentos em uma coleção.
Dados de amostra
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 Começar.
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 .
Recuperar uma contagem exata
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.
Contagem de todos os documentos
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();
Contagem de documentos específicos
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();
Personalizar comportamento de contagem
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 |
---|---|
| Specifies the kind of language collation to use when sorting
results. For more information, see Collation
in the MongoDB Server manual. |
| Attaches a BsonValue comment to the operation. For more information, see the insert command
fields guide in the
MongoDB Server manual. |
| Attaches a String comment to the operation. For more information, see the insert command
fields guide in the
MongoDB Server manual. |
| Sets the index for the operation as a Bson value.
For more information, see the hint statement
in the MongoDB Server manual. |
| Sets the index for the operation as a String value.
For more information, see the hint statement
in the MongoDB Server manual. |
| Sets a limit for the maximum number of documents the cursor
returns. For more information, see cursor in the MongoDB Server documentation. |
| Sets the maximum execution time on the server for the operation. If the
operation does not complete before the time limit, the driver terminates
the operation. |
| Sets the number of documents the query skips before returning results.
For more information, see skip in the
MongoDB Server manual. |
Exemplo de modificação de contagem
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();
Recuperar uma contagem estimada
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();
Personalizar comportamento de contagem estimada
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 |
---|---|
| Attaches a BsonValue comment to the operation. For more information, see the insert command
fields guide in the
MongoDB Server manual. |
| Attaches a String comment to the operation. For more information, see the insert command
fields guide in the
MongoDB Server manual. |
| Sets the maximum execution time on the server for the operation. If the
operation does not complete before the time limit, the driver terminates
the operation. |
Exemplo de modificação de contagem estimada
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();
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: