Retrieve Data
Nesta página
Visão geral
Neste guia, você pode aprender como usar o driver Kotlin Sync para recuperar dados de uma coleção MongoDB usando operações de leitura. Você pode chamar o método find()
para recuperar documentos que correspondam a um conjunto de critérios especificados em um filtro de query.
Dados de amostra
Os exemplos neste guia utilizam a coleção do restaurants
no banco de dados de dados do sample_restaurants
a partir 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 o guia Iniciar com Atlas .
Os documentos nesta coleção são modelados pela seguinte classe de dados Kotlin :
data class Restaurant( val name: String, val cuisine: String )
Encontrar documentos
O método find()
recupera documentos de uma coleção. Este método usa um filtro de query e retorna todos os documentos correspondentes. Um filtro de query é um documento que especifica os critérios que o driver usa para corresponder aos documentos da coleção.
Para saber mais sobre filtros de query, consulte o guia Especificar uma query .
Exemplo de localização de documentos
O exemplo a seguir usa o método find()
para localizar todos os documentos nos quais o valor do campo cuisine
é "Spanish"
:
val results = collection.find(eq(Restaurant::cuisine.name, "Spanish"))
A operação find()
no exemplo anterior retorna um objeto FindIterable
, que você pode iterar usando o método forEach()
, conforme mostrado no exemplo a seguir:
val results = collection.find(eq(Restaurant::cuisine.name, "Spanish")) results.forEach { result -> println(result) }
Restaurant(name=Tropicoso Club, cuisine=Spanish) Restaurant(name=Beso, cuisine=Spanish) Restaurant(name=Sabor Latino Restaurant, cuisine=Spanish) ...
Observação
Localizar todos os documentos
Para encontrar todos os documentos em uma coleção, passe um filtro vazio para o método find()
:
val results = collection.find()
Modificar comportamento de localização
Você pode modificar o comportamento do método find()
encadeando métodos à chamada de método find()
. A tabela a seguir descreve os métodos comumente usados para modificar query:
Método | Descrição |
---|---|
batchSize() | Limits the number of documents to return per batch. To learn more about
batch size, see cursor.batchSize()
in the MongoDB Server manual. |
collation() | Sets the collation options for the query. |
comment() | Specifies a string to attach to the query. This can help you trace and interpret the
operation in the server logs and in profile data. To learn more about query comments,
see $comment in the MongoDB Server
manual. |
hint() | Specifies the index to use for the query. |
limit() | Limits the number of documents to be returned from the query. |
maxTime() | Sets the maximum execution time on the server for this operation. |
skip() | Sets the number of documents to skip. |
sort() | Defines the sort criteria to apply to the query. |
O exemplo a seguir encadeia os métodos limit()
e maxTime()
para limitar o número de documentos retornados pela query a 10
e definir um tempo máximo de execução de 10000
milissegundos na operação:
val results = collection .find(eq(Restaurant::cuisine.name, "Spanish")) .limit(10) .maxTime(10000)
Para obter uma lista completa dos métodos que modificam o comportamento do find()
, consulte a documentação da API para a FindIterable
classe .
Informações adicionais
Para saber mais sobre filtros de queries, consulte Especificar uma query.
Para exibir exemplos de código executáveis que recuperam documentos usando o driver Kotlin Sync, consulte Ler dados do MongoDB.
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: