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

Construtores de classificação

Neste guia, você pode aprender como especificar critérios de classificação para suas query usando construtores no driver Java Reactive Streams.

Os critérios de classificação são as regras que o MongoDB usa para classificar seus dados. Alguns exemplos de critérios de classificação são:

  • Do menor número para o maior número

  • Hora do dia mais antiga para a última hora do dia

  • Ordem alfabética pelo nome

Builders são classes fornecidas pelo driver Java Reactive Streams que o ajudam a construir objetos BSON. Para saber mais, consulte o guia do construtor.

Dica

Para maior brevidade, você pode optar por importar todos os métodos da classe Sorts estaticamente:

import static com.mongodb.client.model.Sorts.*;

Os exemplos a seguir pressupõem essa importação estática.

Os exemplos nesta página usam uma collection de amostra que contém os seguintes documento:

{ "_id": 1, "date": "2022-01-03", "orderTotal": 17.86, "description": "1/2 lb cream cheese and 1 dozen bagels" },
{ "_id": 2, "date": "2022-01-11", "orderTotal": 83.87, "description": "two medium strawberry birthday cakes" },
{ "_id": 3, "date": "2022-01-11", "orderTotal": 19.49, "description": "1 dozen strawberry cupcakes" },
{ "_id": 4, "date": "2022-01-15", "orderTotal": 43.62, "description": "2 chicken lunches and a diet coke" },
{ "_id": 5, "date": "2022-01-23", "orderTotal": 10.99, "description": "1 bagel, 1 orange juice, 1 muffin" },
{ "_id": 6, "date": "2022-01-23", "orderTotal": 60.31, "description": "one large strawberry and chocolate cake" }

A classe Sorts é um construtor que fornece métodos de fábrica estáticos para todos os operadores de critérios de classificação compatíveis com o MongoDB. Esses métodos retornam um objeto Bson que você pode passar para o método sort() de uma instância FindPublisher ou para Aggregates.sort(). Para saber mais sobre a classe Aggregates , consulte o guia do construtor Aggregates .

Para obter mais informações sobre as classes e interfaces nesta seção, consulte a seguinte Documentação da API:

Para especificar uma classificação crescente, utilize o método de fábrica estática Sorts.ascending() . Passe Sorts.ascending() o nome do campo para ordenar.

O exemplo a seguir classifica os documentos na coleção de amostra por ordem crescente no _id campo :

FindPublisher<Document> findPublisher = collection.find().sort(ascending("_id"));
Flux.from(findPublisher)
.doOnNext(doc -> System.out.println(doc.toJson()))
.blockLast();

Para especificar uma classificação decrescente, use o método de fábrica estática Sorts.descending() . Passe Sorts.descending() o nome do campo para ordenar.

O exemplo a seguir classifica os documentos na coleção de amostra em ordem decrescente no _id campo :

FindPublisher<Document> findPublisher = collection.find().sort(descending("_id"));
Flux.from(findPublisher)
.doOnNext(doc -> System.out.println(doc.toJson()))
.blockLast();

Para combinar critérios de classificação, use o método de fábrica estática Sorts.orderBy() . Este método constrói um objeto contendo uma lista ordenada de critérios de classificação. Ao executar a classificação, se os critérios de classificação mais à esquerda resultarem em um empate, a classificação usará o próximo critério de classificação na lista para determinar a ordem.

O exemplo a seguir classifica os documentos na coleção de amostra em ordem decrescente no date campo e, em evento de empate, ordem crescente no orderTotal campo :

Bson orderBySort = orderBy(descending("date"), ascending("orderTotal"));
FindPublisher<Document> findPublisher = collection.find().sort(orderBySort);
Flux.from(findPublisher)
.doOnNext(doc -> System.out.println(doc.toJson()))
.blockLast();

Você pode classificar os resultados da query de texto por sua pontuação de texto, um valor que indica até que ponto um resultado de pesquisa corresponde à sua string de pesquisa. Para especificar uma classificação pela pontuação de texto de uma consulta de texto, use o método de fábrica estático Sorts.metaTextScore().

Para obter mais informações, consulte a documentação da API da classe Sorts.