文档菜单
文档首页
/ / /
Kotlin 协程
/ /

索引构建器

本页内容

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

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

  • 升序索引

  • 降序索引

  • 复合索引

  • 文本索引

  • 哈希索引

  • 地理空间索引

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

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

提示

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

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

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

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

注意

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

以下示例指定在 name 字段上创建升序索引

val ascendingIndex = Indexes.ascending("name")
val indexName = collection.createIndex(ascendingIndex)
println(indexName)
name_1

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

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

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

val descendingIndex = Indexes.descending("capacity")
val indexName = collection.createIndex(descendingIndex)
println(indexName)
capacity_-1

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

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

val compoundIndexExample = Indexes.compoundIndex(
Indexes.descending("capacity", "year"),
Indexes.ascending("name")
)
val indexName = collection.createIndex(compoundIndexExample)
println(indexName)
capacity_-1_year_-1_name_1

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

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

以下示例指定了 theaters 字段的文本索引键

val textIndex = Indexes.text("theaters")
val indexName = collection.createIndex(textIndex)
println(indexName)
theaters_text

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

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

以下示例指定在 capacity 字段上创建散列索引

val hashedIndex = Indexes.hashed("capacity")
val indexName = collection.createIndex(hashedIndex)
println(indexName)
capacity_hashed

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

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

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

val geo2dsphereIndex = Indexes.geo2dsphere("location")
val indexName = collection.createIndex(geo2dsphereIndex)
println(indexName)
location_2dsphere

返回

过滤器