添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
);}@media only screen and (max-width: 1024px){.css-1hltlqq{top:max(min(calc(116px - var(--scroll-y))), 60px);height:calc(100vh - max(min(calc(116px - var(--scroll-y))), 60px));z-index:799;}}@media only screen and (max-width: 480px){.css-1hltlqq{top:max(min(calc(116px - var(--scroll-y))), 60px);height:calc(100vh - max(min(calc(116px - var(--scroll-y))), 60px));}}.css-1hltlqq nav{background-color:var(--sidenav-bg-color);}.css-1hltlqq a[class*='lg-ui-side-nav-item']{color:var(--sidenav-item-color);}.css-1hltlqq a[class*='lg-ui-side-nav-item']:not([aria-current='page']):hover{background-color:var(--sidenav-hover-bg-color);}.css-1hltlqq [data-testid='side-nav-collapse-toggle']{background-color:var(--select-button-bg-color);color:var(--sidenav-toggle-color);border-color:var(--sidenav-toggle-border-color);}.css-1hltlqq a[aria-current='page']{background-color:var(--sidenav-active-bg-color);color:var(--sidenav-active-color);}.css-1hltlqq a[aria-current='page']:before{background-color:var(--sidenav-active-before-color);}
Docs 菜单

排序构建器

在本指南中,您可以了解如何使用 MongoDB Java 驱动程序中的 构建器 为查询指定 排序条件

排序条件是 MongoDB 用于对数据进行排序的规则。 排序条件的一些示例如下:

  • 最小数字到最大数字

  • 一天中的最早时间到一天中的最晚时间

  • 按名字字母顺序排列

构建器是 MongoDB Java 驱动程序提供的类,可帮助您构造 BSON 对象。要了解更多信息,请参阅 构建器指南。

如果您想使用构建器来指定查询的排序条件,则应阅读本指南。

如果您想了解 MongoDB Java 驱动程序中的排序基础知识,请考虑阅读我们 的排序指南。

本页上的示例使用包含以下文档的样本collection:

{"_id": 1, "letter": "c", "food": "coffee with milk"}
{"_id": 3, "letter": "a", "food": "maple syrup"}
{"_id": 4, "letter": "b", "food": "coffee with sugar"}
{"_id": 5, "letter": "a", "food": "milk and cookies"}
{"_id": 2, "letter": "a", "food": "donuts and coffee"}
{"_id": 6, "letter": "c", "food": "maple donut"}

Sorts 类是一个构建器,可为 MongoDB 支持的所有排序条件操作符提供静态工厂方法。 这些方法会返回一个 Bson 对象,您可以将其传递给 FindIterable 实例的 sort() 方法或 Aggregates.sort() 。 如果您想了解有关 Aggregates 类的更多信息,请参阅我们 的聚合构建器指南。

有关此部分中的类和接口的更多信息,请参阅以下 API 文档:

要指定升序排序,请使用 Sorts.ascending() 静态工厂方法。 向 Sorts.ascending() 传递您需要排序的字段的名称。

以下示例在 _id 字段上按升序对 样本集合 中的文档进行排序:

import static com.mongodb.client.model.Sorts.ascending;
// <MongoCollection setup code here>
collection.find().sort(ascending("_id"));

上述示例的输出应如下所示:

{"_id": 1, "letter": "c", "food": "coffee with milk"}
{"_id": 2, "letter": "a", "food": "donuts and coffee"}
{"_id": 3, "letter": "a", "food": "maple syrup"}
...

要指定降序排序,请使用 Sorts.descending() 静态工厂方法。 向 Sorts.descending() 传递您需要排序的字段的名称。

以下示例在 _id 字段上按降序对 样本集合 中的文档进行排序:

import static com.mongodb.client.model.Sorts.descending;
// <MongoCollection setup code here>
collection.find().sort(descending("_id"));

前面的示例应输出如下内容:

{"_id": 6, "letter": "c", "food": "maple donut"}
{"_id": 5, "letter": "a", "food": "milk and cookies"}
{"_id": 4, "letter": "b", "food": "coffee with sugar"}
...

要组合排序条件,请使用 Sorts.orderBy() 静态工厂方法。 此方法可构造一个对象,其中包含排序条件的有序列表。 执行排序时,如果最左边的排序条件的结果为并列,则排序将使用列表中的下一个排序条件来确定顺序。

以下示例在 letter 字段上按降序对 样本集合 中的文档进行排序,如果出现平局,则在 _id 字段上升序排序:

import static com.mongodb.client.model.Sorts.orderBy;
import static com.mongodb.client.model.Sorts.ascending;
import static com.mongodb.client.model.Sorts.descending;
// <MongoCollection setup code here>
Bson orderBySort = orderBy(descending("letter"), ascending("_id"));
collection.find().sort(orderBySort);

上述示例的输出应如下所示:

{"_id": 1, "letter": "c", "food": "coffee with milk"}
{"_id": 6, "letter": "c", "food": "maple donut"}
{"_id": 4, "letter": "b", "food": "coffee with sugar"}
{"_id": 2, "letter": "a", "food": "donuts and coffee"}
{"_id": 3, "letter": "a", "food": "maple syrup"}
{"_id": 5, "letter": "a", "food": "milk and cookies"}

您可以按文本分数对文本搜索结果进行排序,该值表示搜索结果与搜索字符串的匹配程度。 要指定按文本搜索的文本分数排序,请使用 Sorts.metaTextScore() 静态工厂方法。 有关如何使用 Sorts.metaTextScore() 方法指定排序条件的详细示例,请参阅 排序基础知识指南的文本搜索部分。

有关详细信息,请参阅 Sorts 类 API 文档。