文档菜单
文档首页
/ / /
Java 同步驱动程序
/ /

索引构建器

本页内容

  • 概述
  • 升序索引
  • 降序索引
  • 组合索引
  • 文本索引
  • 哈希索引
  • 地理空间索引

在本指南中,您可以了解如何使用构建器在MongoDB Java驱动程序中指定索引。TheIndexes构建器提供了构建以下类型索引的帮助方法

  • 升序索引

  • 降序索引

  • 组合索引

  • 文本索引

  • 哈希索引

  • 地理空间索引

索引存储集合数据集的子集。索引存储特定字段或字段集的值,按字段的值排序。有关索引覆盖的查询示例,请参阅我们的索引指南。

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

提示

为了简洁起见,您可以选择静态导入索引类的所有方法。

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

以下示例假设静态导入。

升序索引允许您按照索引字段值从小到大的顺序对查询结果进行排序。

为了创建升序索引,首先调用ascending()构建器方法,创建一个代表索引文档的Bson实例,传入您想要索引的字段名称。然后,在集合上调用createIndex()方法,传入包含索引文档的Bson实例。

注意

如果您在单个字段上有一个升序或降序索引,MongoDB可以使用索引按任意方向排序。

以下示例指定了在name字段上的升序索引

Bson ascendingIndex = ascending("name");
collection.createIndex(ascendingIndex);

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

要创建降序索引,首先调用 descending() 构建器方法来创建一个表示索引文档的 Bson 实例,传递您想要索引的字段名称或名称。然后,在集合上调用 createIndex() 方法,传递包含索引文档的 Bson 实例。

以下示例指定了对 capacity 字段的降序索引

Bson descendingIndex = descending("capacity");
collection.createIndex(descendingIndex);

为了创建一个组合索引,首先调用compoundIndex()构建器方法,创建一个代表索引文档的Bson实例,传入要索引的字段名称。然后,在集合上调用createIndex()方法,传入包含索引文档的Bson实例。

以下示例指定了一个组合索引,由对capacityyear字段的降序索引,后面跟随对name字段的升序索引。

Bson compoundIndexExample = compoundIndex(descending("capacity", "year"), ascending("name"));
collection.createIndex(compoundIndexExample);

文本索引将文档按照索引字段中的文本分组。

要创建文本索引,首先调用text()构建器方法,创建一个代表索引文档的Bson实例,传入要索引的字段名称。然后,在集合上调用createIndex()方法,传入包含索引文档的Bson实例。

以下示例指定了在“theaters”字段上的文本索引键。

Bson textIndex = text("theaters");
collection.createIndex(textIndex);

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

为了创建哈希索引,首先调用 hashed() 构造函数来创建一个表示索引文档的 Bson 实例,传入你想要索引的字段名称。然后,在集合上调用 createIndex() 方法,传入包含索引文档的 Bson 实例。

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

Bson hashedIndex = hashed("capacity");
collection.createIndex(hashedIndex);

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

为了创建一个 2dsphere 索引,首先调用 geo2dsphere() 构建方法来创建一个表示索引文档的 Bson 实例,传递你想要索引的字段名称或名称。然后,在集合上调用 createIndex() 方法,传递包含索引文档的 Bson 实例。

以下示例在 location 字段上指定了一个 2dsphere 索引

Bson geo2dsphereIndex = geo2dsphere("location");
collection.createIndex(geo2dsphereIndex);

返回

过滤器