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 localizar documentos usando o Driver MongoDB Java Reactive Streams.

Os exemplos neste guia usam a collection sample_restaurants.restaurants dos conjuntos de dados de amostra do Atlas. Para aprender como criar um agrupamento de MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte a Introdução.

Importante

Biblioteca do Reator do Projeto

Este guia usa a biblioteca Project Reactor para consumir instâncias do Publisher retornadas pelos métodos de driver Java Reactive Streams. Para saber mais sobre a biblioteca do Projeto Reactor e como usá-la, consulte Introdução na documentação do Reactor. Para saber mais sobre como usamos os métodos da biblioteca do Project Reactor neste guia, consulte o guia Gravar dados no MongoDB.

O driver Java Reactive Streams inclui um método para recuperar documentos de uma collection: find().

Este método usa um filtro de query e retorna um ou mais documentos correspondentes. Um filtro de query é um objeto que especifica os documentos que você deseja recuperar em sua query.

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

Para localizar um único documento em uma coleção, encadeie o método first() à sua chamada de método find() e passe um filtro de query para a chamada de método find() que especifica os critérios do documento que você deseja localizar. Se mais de um documento corresponder ao filtro de query, a construção find().first() retornará o primeiro documento correspondente dos resultados recuperados. Se nenhum documento corresponder ao filtro de query, a construção retornará None.

Dica

A construção find().first() é útil quando você sabe que há apenas um documento correspondente ou se está interessado apenas na primeira correspondência.

O exemplo a seguir usa a construção find().first() para localizar o primeiro documento em que o campo "cuisine" tem o valor "Bakery":

Publisher<Document> findDocPublisher = restaurants.find(
eq("cuisine", "Bakery")).first();
Mono.from(findDocPublisher)
.doOnNext(System.out::println)
.blockLast();

Dica

Ordem de classificação

Se você não especificar uma ordem de classificação, a construção find().first() retornará o primeiro documento em ordem natural no disco.

Para saber mais sobre classificação, consulte o guia Especificar Documentos para Devolver .

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 seguinte utiliza o método find() para localizar todos os documentos onde o campo "cuisine" tem o valor "Spanish":

FindPublisher<Document> findDocPublisher = restaurants.find(
eq("cuisine", "Spanish"));
Flux.from(findDocPublisher)
.doOnNext(System.out::println)
.blockLast();

Observação

Localizar todos os documentos

Para encontrar todos os documentos em uma coleção, não passe parâmetros para o método find() :

Publisher<Document> findAllPublisher = restaurants.find();
Flux.from(findAllPublisher)
.doOnNext(System.out::println)
.blockLast();

Você pode modificar o comportamento do método find() encadeando outros métodos a ele. A tabela a seguir descreve os métodos comumente usados:

Argument
Descrição

batchSize(int batchSize)

O número máximo de documentos dentro de cada lote retornados em um resultado de query. Por padrão, o driver define esse valor como Long.MAX_VALUE.

Um batchSize de 0 significa que o cursor será estabelecido, mas nenhum documento será retornado no primeiro lote.

collation(Collation collation)

Define as opções de agrupamento como uma instância da classe Collation.

comment(String comment)

Anexa uma string à query. Isso pode ajudá-lo a rastrear e interpretar a operação nos registros do servidor e nos dados de perfil. Para saber mais sobre comentários da query, consulte a página cursor.comment() no manual do MongoDB Server .

hint(Bson hint)

Obtém ou define o índice para procurar documentos. Para obter mais informações, consulte a declaração de dica no manual do MongoDB Server .

O exemplo seguinte utiliza o método find() para localizar todos os documentos onde o campo "cuisine" tem o valor "Italian" e define um comentário:

FindPublisher<Document> findDocPublisher = restaurants.find(
eq("cuisine", "Italian")).comment("Find operation");
Flux.from(findDocPublisher)
.doOnNext(System.out::println)
.blockLast();

Para obter uma lista completa dos argumentos disponíveis, consulte a documentação da API para a interface FindPublisher.

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

Para obter exemplos de código executáveis de recuperação de documentos usando o driver Java Reactive Streams, consulte o guia Query Documents .

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