Visão geral
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çãoestimated_document_count
: retorna o número estimado de documentos que existem em uma coleção
Dados de amostra
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 .
Recuperar uma contagem precisa
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 .
Contagem de todos os documentos
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
Contagem de documentos específicos
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
Personalizar comportamento de contagem
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 |
---|---|
| The collation to use for the operation. Type: Hash |
| The index to use for the operation. Type: Hash |
| The comment to attach to the operation. Type: Object |
| The maximum number of documents to count. This value must be a positive integer. Type: Integer |
| The maximum amount of time in milliseconds that the operation can run. Type: Integer |
| The number of documents to skip before counting documents. Type: Integer |
| 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 ({}
).
Recuperar uma contagem estimada
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
Personalizar comportamento de contagem estimada
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 |
---|---|
| The comment to attach to the operation. Type: Object |
| The maximum amount of time in milliseconds that the operation can run. Type: Integer |
| 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
Documentação da API
Para saber mais sobre qualquer um dos métodos discutidos nesta guia, consulte a seguinte documentação da API: