对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

索引构建器

在本指南中,您可以了解如何使用 Java Reactive Streams 驱动程序中的 构建者 指定 索引 。Indexes 构建者提供了用于构建以下类型索引的辅助方法:

索引可存储集合数据集的子集。索引可存储某个特定字段或多个字段的值,并按字段的值进行排序。

Indexes 类为所有MongoDB索引类型提供静态工厂方法。每个方法都返回一个BSON实例,您可以将其传递给createIndex().

提示

为简洁起见,您可以选择静态导入 Indexes 类的所有方法:

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

以下示例假定此静态导入。

升序索引使您能够按索引字段的值从小到大对查询结果进行排序。

为了创建升序索引,首先调用 ascending() 构建者方法以创建代表已建立索引的文档的 Bson 实例,并传递要建立索引的字段名称。然后,在集合上调用 createIndex() 方法,并传递其中包含已建立索引的文档的 Bson 实例。

注意

如果单个字段有升序或降序索引,MongoDB 可以使用任一方向的索引进行排序。

以下示例对name字段指定升序索引:

Bson ascendingIndex = ascending("name");
Publisher<String> result = collection.createIndex(ascendingIndex);
Mono.from(result).block();

降序索引使您能够按索引字段的值从大到小对查询结果进行排序。

为了创建降序索引,首先调用降序()构建器方法创建一个表示索引文档的 Bson实例,并传递要索引的一个或多个字段的名称。然后,对该集合调用createIndex() Bson方法,并传递包含索引文档的 实例。

以下示例指定对 capacity 字段进行降序索引:

Bson descendingIndex = descending("capacity");
Publisher<String> result = collection.createIndex(descendingIndex);
Mono.from(result).block();

为了创建复合索引,首先调用compoundIndex()构建器方法创建一个表示索引文档的 Bson实例,并传递要索引的字段的名称。然后,对该集合调用createIndex() 方法,并传递包含索引文档的Bson 实例。

以下示例指定了一个复合索引,由capacity和year字段的降序索引以及name字段的升序索引组成:

Bson compoundIndex = compoundIndex(descending("capacity", "year"), ascending("name"));
Publisher<String> result = collection.createIndex(compoundIndex);
Mono.from(result).block();

文本索引按索引字段中的文本对文档进行分组。

为了创建文本索引,首先调用 text() 构建器方法创建一个表示索引文档的Bson 实例,并传递要索引的字段的名称。然后,对该集合调用createIndex() 方法,并传递包含索引文档的Bson 实例。

以下示例在 "theaters" 字段上指定文本索引键:

Bson textIndex = text("theaters");
Publisher<String> result = collection.createIndex(textIndex);
Mono.from(result).block();

哈希索引按索引字段中的哈希值对文档进行分组。

为了创建哈希索引,首先调用哈希() 构建器方法创建一个表示索引文档的Bson 实例,并传递要索引的字段的名称。然后,对该集合调用createIndex() 方法,并传递包含索引文档的Bson 实例。

以下示例在capacity字段上指定哈希索引:

Bson hashedIndex = hashed("capacity");
Publisher<String> result = collection.createIndex(hashedIndex);
Mono.from(result).block();

2dsphere索引按索引字段中的坐标对文档进行分组。

要创建2dsphere 索引,请先调用 geo2 dsphere() Bson构建器方法创建表示索引文档的 实例,并传递要索引的字段的名称。然后,对该集合调用createIndex() Bson方法,并传递包含索引文档的 实例。

以下示例在location字段上指定2dsphere索引:

Bson geo2dsphereIndex = geo2dsphere("location");
Publisher<String> result = collection.createIndex(geo2dsphereIndex);
Mono.from(result).block();