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

Encontrar documentos

Neste guia, você pode aprender como usar o driver Ruby para recuperar dados de uma coleção MongoDB usando operações de leitura. Você pode chamar o método find em uma coleção para recuperar documentos que correspondam a um conjunto de critérios.

Os exemplos neste guia usam a collection companies no banco de dados sample_training dos conjuntos 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 aprender a criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o Guia de Introdução do MongoDB.

Para recuperar documentos de uma coleção, use o método find. Este método usa um parâmetro de filtro de query e retorna um objeto Mongo::Collection::View, que representa a query. O driver adia a execução da query até que você obtenha os resultados usando métodos como first ou each. Depois de solicitar os resultados, o driver envia a consulta para o servidor e retorna um objeto Mongo::Cursor do qual você pode acessar os resultados.

Você pode encadear métodos de opção ao método find para refinar os resultados da operação.

Dica

Para saber mais sobre filtros de query, consulte o guia Especificar uma query .

Para encontrar vários documentos em uma coleção, passe um filtro de queries para o método find que especifica os critérios dos documentos que você deseja recuperar.

O exemplo a seguir usa o método find para localizar todos os documentos nos quais o campo founded_year tem o valor 1970:

results = collection.find(founded_year: 1970)

Quando você chama o método each no objeto Mongo::Collection::View que representa a consulta, o driver retorna um objeto Mongo::Cursor . Um cursor é um mecanismo que permite que um aplicação itere sobre os resultados do banco de dados enquanto mantém apenas um subconjunto deles na memória em determinado momento. Os cursores são úteis quando o método find retorna uma grande quantidade de documentos.

O código a seguir chama o método each para iterar nos resultados da query:

results.each do |doc|
puts doc
end
{"_id"=>BSON::ObjectId('...'), "name"=>"Mitsubishi Motors", "permalink"=>"mitsubishi-motors",
"crunchbase_url"=>"http://www.crunchbase.com/company/mitsubishi-motors",
"homepage_url"=>"http://www.mitsubishi-motors.com", ...}
{"_id"=>BSON::ObjectId('...'), "name"=>"Western Digital", "permalink"=>"western-digital",
"crunchbase_url"=>"http://www.crunchbase.com/company/western-digital",
"homepage_url"=>"http://www.wdc.com/en", ...}
{"_id"=>BSON::ObjectId('...'), "name"=>"Celarayn", "permalink"=>"celarayn",
"crunchbase_url"=>"http://www.crunchbase.com/company/celarayn",
"homepage_url"=>"http://www.celarayn.es", ...}

Observação

Localizar todos os documentos

Para localizar todos os documentos em uma coleção, chame o método find sem passar um filtro de query:

results = collection.find

Para localizar um único documento em uma coleção, chame o método find e passe um filtro de query que especifique os critérios do documento que você deseja localizar. Em seguida, encadeie o método first a find.

Se o filtro de query corresponder a mais de um documento, o método first recuperará o primeiro documento correspondente dos resultados da operação.

O exemplo a seguir encadeia o método first a find para localizar o primeiro documento no qual o campo name tem o valor 'LinkedIn':

document = collection.find(name: 'LinkedIn').first
puts document
{"_id"=>BSON::ObjectId('...'), "name"=>"LinkedIn", "permalink"=>"linkedin",
"crunchbase_url"=>"http://www.crunchbase.com/company/linkedin",
"homepage_url"=>"http://linkedin.com", "blog_url"=>"http://blog.linkedin.com",
...}

Dica

Ordem de classificação

O método first retorna o primeiro documento em ordem natural no disco se nenhum critério de classificação for especificado.

Você pode encadear métodos de opção ao método find para modificar os resultados da operação. A tabela a seguir descreve algumas dessas opções:

Opção
Descrição

batch_size

O número de documentos a serem devolvidos por lote. O valor padrão é 101.
Tipo: Integer

collation

O agrupamento a ser usado para a operação. O valor padrão é o agrupamento especificado para a coleção.
Tipo: Hash

comment

O comentário a ser anexado à operação.
Tipo: Object

limit

O número máximo de documentos que a operação pode retornar.
Tipo: Integer

skip

O número de documentos a ignorar antes de retornar os resultados.
Tipo: Integer

sort

A ordem na qual a operação retorna documentos correspondentes.
Tipo: Hash

O exemplo a seguir usa o método find para localizar todos os documentos nos quais o campo number_of_employees tem o valor 1000. O exemplo utiliza a opção limit para retornar um máximo de 2 resultados:

limit_results = collection.find(number_of_employees: 1000).limit(2)
limit_results.each do |doc|
puts doc
end
{"_id"=>BSON::ObjectId('...'), "name"=>"Akamai Technologies", "permalink"=>"akamai-technologies",
"crunchbase_url"=>"http://www.crunchbase.com/company/akamai-technologies",
"homepage_url"=>"http://www.akamai.com", ...}
{"_id"=>BSON::ObjectId('...'), "name"=>"Yodle", "permalink"=>"yodle",
"crunchbase_url"=>"http://www.crunchbase.com/company/yodle",
"homepage_url"=>"http://www.yodle.com", ...}

Para obter uma lista completa de opções, consulte a documentação da API para o método de localização.

Para saber mais sobre filtros de query, consulte o guia Especificar uma query .

Para exibir exemplos de código que recuperam documentos usando o driver Ruby, consulte Documentos de query.

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