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 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 usam a coleção movies no banco de dados sample_mflix dos conjuntos de dados de amostra do Atlas. Para aprender a criar um cluster gratuito do MongoDB Atlas e carregar os conjuntos de dados de amostra, consulte o guia Comece a usar.

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)
}

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) }

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 o Lambda fornecido.

comment()

Especifica uma string para anexar à query. Isso pode ajudar você a rastrear e interpretar a operação nos logs do servidor e nos dados do perfil.

first()

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

firstOrNull()

Retorna o primeiro documento que corresponde à query ou null se não houver 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: