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 queries 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 Sorts classe é um construtor que fornece métodos de fábrica estáticos para todos os operadores de critérios de classificação suportados pelo MongoDB. Esses métodos retornam um Bson objeto que você pode passar para o sort() método de uma FindPublisher instância ou Aggregates.sort() para. Para saber mais sobre a Aggregates classe, 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.