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 usar o driver Scala para recuperar uma contagem precisa e estimada do número de documentos em uma coleção. Os métodos a seguir contam documentos em uma collection:

  • countDocuments(): retorna o número exato de documentos que correspondem a um filtro de query ou que existem em uma coleção

  • estimatedDocumentCount(): retorna o número estimado de documentos em uma coleção

Os exemplos neste guia usam a companies collection no sample_training banco de dados dos conjuntos de dados de amostra do Atlas . Para acessar essa collection a partir do seu aplicação Scala, crie um MongoClient que se conecte a um Atlas cluster e atribua o seguinte valor às suas variáveis database e collection:

val database: MongoDatabase = mongoClient.getDatabase("sample_training")
val collection: MongoCollection[Document] = database.getCollection("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 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 o guia Especificar uma Consulta .

Para retornar uma contagem de todos os documentos na collection, chame o método countDocuments() sem passar nenhum parâmetro, conforme mostrado no exemplo a seguir:

collection.countDocuments()
.subscribe((count: Long) => println(s"Number of documents: $count"),
(e: Throwable) => println(s"There was an error: $e"))
Number of documents: 9500

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

O exemplo a seguir conta o número de documentos em que o valor do campo founded_year é 2010:

collection.countDocuments(equal("founded_year", 2010))
.subscribe((count: Long) => println(s"Companies founded in 2010: $count"),
(e: Throwable) => println(s"There was an error: $e"))
Number of companies founded in 2010: 33

Você pode modificar o comportamento do método countDocuments() passando uma instância CountOptions como parâmetro. A tabela seguinte descreve algumas funções de membro da classe CountOptions , que você pode utilizar para configurar opções para a operação de contagem:

Método
Descrição

collation()

Define o agrupamento a ser usado para a operação.
Tipo de parâmetro: Collation

hint()

Define o índice a ser usado para a operação.
Tipo de parâmetro: Bson

limit()

Define o número máximo de documentos a serem contados. Esse valor deve ser um número inteiro positivo.
Tipo de parâmetro: int

skip()

Define o número de documentos a serem ignorados antes de contar os documentos.
Tipo de parâmetro: int

O exemplo a seguir usa o método countDocuments() 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:

val countOptions = CountOptions().limit(100)
collection.countDocuments(equal("number_of_employees", 50), countOptions)
.subscribe((count: Long) => println(s"Companies with 50 employees: $count"),
(e: Throwable) => println(s"There was an error: $e"))
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 estimatedDocumentCount() . 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:

collection.estimatedDocumentCount()
.subscribe((count: Long) => println(s"Estimated number of documents: $count"),
(e: Throwable) => println(s"There was an error: $e"))
Estimated number of documents: 9500

Você pode modificar o comportamento do método estimatedDocumentCount() passando uma instância EstimatedDocumentCountOptions como parâmetro. A classe EstimatedDocumentCountOptions inclui a função de membro comment(), que você pode utilizar para definir um comentário anexado à sua operação.

O exemplo a seguir usa o método estimatedDocumentCount() para retornar uma estimativa do número de documentos na coleção e define um comentário sobre a operação:

val estimatedOptions = EstimatedDocumentCountOptions().comment("Count operation")
collection.estimatedDocumentCount(estimatedOptions)
.subscribe((count: Long) => println(s"Estimated number of documents: $count"),
(e: Throwable) => println(s"There was an error: $e"))
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: