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

Construtores são classes fornecidas pelo driver Java Reactive Streams que o ajudam a construir objetos BSON. Para saber mais, consulte o guia de construtores.

Dica

Para maior brevidade, você pode optar por importar todos os métodos da classe Classificações 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 campo _id :

FindPublisher<Document> findPublisher = collection.find().sort(ascending("_id"));
Flux.from(findPublisher)
.doOnNext(doc -> System.out.println(doc.toJson()))
.blockLast();
{ "_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" }
...

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 campo _id :

FindPublisher<Document> findPublisher = collection.find().sort(descending("_id"));
Flux.from(findPublisher)
.doOnNext(doc -> System.out.println(doc.toJson()))
.blockLast();
{ "_id": 6, "date": "2022-01-23", "orderTotal": 60.31, "description": "one large strawberry and chocolate cake" }
{ "_id": 5, "date": "2022-01-23", "orderTotal": 10.99, "description": "1 bagel, 1 orange juice, 1 muffin" }
{ "_id": 4, "date": "2022-01-15", "orderTotal": 43.62, "description": "2 chicken lunches and a diet coke" }
...

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 campo date e, em caso de empate, ordem crescente no campo orderTotal :

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();
{ "_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" }
{ "_id": 4, "date": "2022-01-15", "orderTotal": 43.62, "description": "2 chicken lunches and a diet coke" }
{ "_id": 3, "date": "2022-01-11", "orderTotal": 19.49, "description": "1 dozen strawberry cupcakes" }
{ "_id": 2, "date": "2022-01-11", "orderTotal": 83.87, "description": "two medium strawberry birthday cakes" }
{ "_id": 1, "date": "2022-01-03", "orderTotal": 17.86, "description": "1/2 lb cream cheese and 1 dozen bagels" }

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.