Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ / /
Kotlin Sync 驱动程序

用于查询优化的索引

在本指南中,您可以学习;了解如何通过Kotlin Sync驾驶员使用索引。 索引可以提高查询效率,并增加查询和存储文档的功能。

如果没有索引,MongoDB 必须扫描集合中的每个文档,以查找与每个查询匹配的文档。 这些集合扫描很慢,可能会对应用程序的性能产生负面影响。 但是,如果查询存在适当的索引,MongoDB 就可以使用该索引来限制必须检查的文档。

要学习;了解查询必须满足哪些条件才能直接从索引返回结果,请参阅MongoDB Server手册中的 涵盖的查询 部分。

若要提高查询性能,请对应用程序查询中经常出现的字段以及其他操作返回的排序结果中经常出现的字段建立索引。您添加的每个索引在活动状态下都会占用磁盘空间和内存,因此您可能需要跟踪索引内存和磁盘使用情况以进行容量规划。此外,当写入操作更新索引字段时,MongoDB 还会更新相关索引。

由于MongoDB支持动态模式,因此应用程序可以查询事先无法知道名称或具有任意名称的字段。通配符索引有助于支持这些查询,但并不是为了取代基于工作负载的索引规划。

有关设计数据模型和选择适合应用程序的索引的更多信息,请参阅有关“索引策略”和“数据建模和索引”的服务器文档。

MongoDB提供了几种不同的索引类型来支持数据查询。您可以通过在集合上调用 createIndex() 方法并将索引定义作为参数传递来创建索引。

以下部分描述了最常见的索引类型,并提供了创建每种索引类型的样本代码。

注意

本页上的示例使用 Atlas示例数据集 中的 sample_mflix.moviessample_mflix.theaters 集合。要学习;了解如何创建免费的MongoDB Atlas 群集并加载示例数据集,请参阅 Kotlin Sync驱动程序入门。

要学习;了解有关不同索引类型的更多信息,请参阅MongoDB Server手册中的索引类型

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

collection.createIndex(Indexes.ascending("<field name>"))

要学习;了解有关单字段索引的更多信息,请参阅MongoDB Server手册中的单字段索引

以下示例在指定字段上创建复合索引:

collection.createIndex(Indexes.ascending("<field name 1>", "<field name 2>"))

要学习;了解有关复合索引的更多信息,请参阅MongoDB Server手册中的复合索引

以下示例在指定的数组值字段上创建多键索引:

collection.createIndex(Indexes.ascending("<array field name>"))

要学习;了解有关多键索引的更多信息,请参阅MongoDB Server手册中的多键索引。

以下示例将在_id字段上创建一个具有集群索引的新集合:

val clusteredIndexOptions = ClusteredIndexOptions(
Indexes.ascending("_id"),
true
)
val collection = database.createCollection("<collection name>", clusteredIndexOptions)

要学习;了解有关集群化集合和索引的更多信息,请参阅MongoDB Server手册中的集群化集合

以下示例在指定string字段上创建文本索引:

collection.createIndex(Indexes.text("<field name>"))

以下示例对包含GeoJSON对象的指定字段创建2dsphere索引:

collection.createIndex(Indexes.geo2dsphere("<GeoJSON object field>"))

要学习;了解有关地理空间索引的更多信息,请参阅MongoDB Server手册中的地理空间索引

以下示例在指定字段上创建唯一索引:

val indexOptions = IndexOptions().unique(true)
collection.createIndex(Indexes.ascending("<field name>"), indexOptions)

要学习;了解有关唯一索引的更多信息,请参阅MongoDB Server手册中的唯一索引

以下示例在指定集合中创建通配符索引:

collection.createIndex(Indexes.ascending("$**"))

要学习;了解有关通配符索引的更多信息,请参阅MongoDB Server手册中的通配符索引

您可以对集合使用 dropIndex() 方法来删除索引,如以下示例所示:

collection.dropIndex("<index name>")

后退

扩展 JSON

在此页面上