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.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Encontrar documentos

Neste guia, você pode aprender como usar o driver Kotlin 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 queries.

Os exemplos neste guia utilizam a coleção do movies no banco de dados do sample_mflix a partir do conjunto de dados de amostra do Atlas. Para aprender como criar um cluster gratuito do MongoDB Atlas e carregar os conjuntos de dados de amostra, consulte o guia Get Started.

A seguinte classe de dados Kotlin modela os documentos nesta coleção:

data class Movie(val title: String, val runtime: Int, val imdb: IMDB){
data class IMDB(val rating: Double)
}

A seguinte classe de dados Kotlin modela os resultados retornados pelos exemplos neste guia:

data class Results(val title: String)

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 .

O exemplo a seguir encadeia o método firstOrNull() à chamada de método find() para localizar o primeiro documento no qual o valor do campo name é "The Room":

val projectionFields= Projections.fields(
Projections.include(Movie::title.name, Movie::imdb.name),
Projections.excludeId()
)
val resultsFlow = collection.withDocumentClass<Results>()
.find(eq(Movie::title.name, "The Room"))
.projection(projectionFields)
.firstOrNull()
if (resultsFlow == null) {
println("No results found.");
} else {
println(resultsFlow)
}
Movie(title=The Room, runtime=99, imdb=IMDB(rating=3.7))

Este exemplo utiliza o método find() para localizar todos os documentos nos quais o valor do campo runtime é menor que 15. A operação find() retorna um objeto FindFlow , que você pode iterar usando o método collect(), conforme mostrado no exemplo a seguir:

val projectionFields= Projections.fields(
Projections.include(Movie::title.name, Movie::imdb.name),
Projections.excludeId()
)
val resultsFlow = collection.withDocumentClass<Results>()
.find(lt(Movie::runtime.name, 15))
.projection(projectionFields)
resultsFlow.collect { println(it) }
Movie(title=Meshes of the Afternoon, runtime=14, imdb=IMDB(rating=8.0))
Movie(title=The Band Concert, runtime=9, imdb=IMDB(rating=7.9))
Movie(title=What's Opera, Doc?, runtime=7, imdb=IMDB(rating=8.3))
...

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 resultsFlow = collection.withDocumentClass<Results>()
.find()

Você pode modificar o comportamento do método find() encadeando métodos a uma instância FindFlow. A tabela a seguir descreve os métodos comumente usados para modificar query:

Método
Descrição

batchSize()

Limita o número de documentos a serem devolvidos por lote. O valor padrão é 64 documentos.

Para saber mais sobre o tamanho do lote , consulte cursor.batchSize() no manual do MongoDB Server .

collation()

Define as opções de agrupamento para a query.

collect()

Processa cada elemento no fluxo e aplica a lambda fornecida.

comment()

Especifica uma string a ser anexada à query. Isso pode ajudá-lo a rastrear e interpretar a operação nos registros do servidor e nos dados de perfil.

first()

Retorna o primeiro documento que corresponde à query ou lança um MongoClientException se não existirem documentos correspondentes.

firstOrNull()

Retorna o primeiro documento que corresponde à query ou null se não existirem documentos correspondentes.

hint()

Especifica o índice a ser usado para a query.

limit()

Limita o número de documentos a serem retornados da query.

skip()

Define o número de documentos a ignorar.

sort()

Define os critérios de classificação a serem aplicados à query.

O exemplo a seguir encadeia o método limit() para limitar o número de documentos retornados pela query para 10:

val projectionFields= Projections.fields(
Projections.include(Movie::title.name, Movie::imdb.name),
Projections.excludeId()
)
val resultsFlow = collection.withDocumentClass<Results>()
.find()
.projection(projectionFields)
.limit(10)

Para obter uma lista completa dos métodos que modificam o comportamento do find(), consulte a classe FindFlow na documentação da API do driver Kotlin.

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

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