Menu Docs
Página inicial do Docs
/ / /
Ruby Driver
/ /

Contagem de documentos

Neste guia, você pode aprender como usar o driver Ruby 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:

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

  • estimated_document_count: retorna o número estimado de documentos que existem em uma coleção

Os exemplos neste guia utilizam a coleção do companies no banco de dados do sample_training a partir dosconjuntos de dados de amostra do Atlas. Para acessar essa coleção a partir do seu aplicação Ruby, crie um objeto Mongo::Client que se conecte a um Atlas cluster e atribua os seguintes valores às suas variáveis database e collection:

database = client.use('sample_training')
collection = database['companies']

Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .

Use o método count_documents 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 count_documents .

Dica

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

Para retornar uma contagem de todos os documentos na collection, chame o método count_documents sem passar um filtro de query, conforme mostrado no exemplo a seguir :

result = collection.count_documents
puts "Number of documents: #{result}"
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 count_documents .

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

result = collection.count_documents(founded_year: 2010)
puts "Number of companies founded in 2010: #{result}"
Number of companies founded in 2010: 33

Você pode modificar o comportamento do método count_documents passando um segundo parâmetro que especifica os valores das opções. A tabela a seguir descreve as opções que você pode definir para personalizar a operação de contagem:

Opção
Descrição

collation

The collation to use for the operation.
Type: Hash

hint

The index to use for the operation.
Type: Hash

comment

The comment to attach to the operation.
Type: Object

limit

The maximum number of documents to count. This value must be a positive integer.
Type: Integer

max_time_ms

The maximum amount of time in milliseconds that the operation can run.
Type: Integer

skip

The number of documents to skip before counting documents.
Type: Integer

read

The read preference to use for the operation. To learn more, see Read Preference in the MongoDB Server manual.
Type: Hash

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:

result = collection.count_documents({ number_of_employees: 50 }, limit: 100)
puts "Number of companies with 50 employees: #{result}"
Number of companies with 50 employees: 100

Importante

Ao passar um parâmetro de opções para o método count_documents, você deve colocar o filtro de query entre colchetes ({}).

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:

result = collection.estimated_document_count
puts "Estimated number of documents: #{result}"
Estimated number of documents: 9500

Você pode modificar o comportamento do método estimated_document_count passando um parâmetro que especifica valores de opção. A tabela a seguir descreve as opções que você pode definir para personalizar a operação:

Opção
Descrição

comment

The comment to attach to the operation.
Type: Object

max_time_ms

The maximum amount of time in milliseconds that the operation can run.
Type: Integer

read

The read concern to use for the operation. To learn more, see Read Concern in the MongoDB Server manual.
Type: Hash

O exemplo a seguir utiliza o método estimated_document_count para retornar uma estimativa do número de documentos na coleção e define um tempo limite de 1000 milissegundos na operação:

result = collection.estimated_document_count(max_time_ms: 1000)
puts "Estimated number of documents: #{result}"
Estimated number of documents: 9500

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

Voltar

Valores de campo distintos

Nesta página