与索引一起工作
概述
在本指南中,您可以学习如何使用 Kotlin 同步驱动程序使用 索引。索引可以提高查询效率,并为查询和存储文档添加功能。
没有索引,MongoDB 必须扫描集合中的每个文档以找到与每个查询匹配的文档。这些集合扫描速度慢,可能会负面影响应用程序的性能。但是,如果查询存在适当的索引,MongoDB 可以使用该索引来限制必须检查的文档。
操作注意事项
为了提高查询性能,请在应用查询和返回排序结果的操作中经常出现的字段上建立索引。每个添加的索引在活动状态下都会消耗磁盘空间和内存,因此我们建议您跟踪索引内存和磁盘使用情况以进行容量规划。此外,当写入操作更新索引字段时,MongoDB 会更新相关索引,这可能会对写入操作的性能产生负面影响。
您可以使用通配符索引 在您的 MongoDB 应用程序中查询名称未知或随机的字段。通配符索引不是为了替代基于工作负载的索引规划而设计的。
有关设计您的数据模型和选择适合您应用程序的索引的更多信息,请参阅 MongoDB 服务器手册中的 数据建模和索引 指南。
示例数据
本指南中的示例使用的是movies
集合,位于 sample_mflix
数据库中,该数据库来自 Atlas 示例数据集。要了解如何创建免费的 MongoDB Atlas 集群并加载示例数据集,请参阅 使用 Atlas 入门 指南。
创建索引
MongoDB支持多种不同的索引类型,以帮助查询您的数据。以下页面描述了最常见的索引类型,并为创建每种索引类型提供了示例代码。
删除索引
您可以删除任何未使用的索引,除了在_id字段上的默认唯一索引。
以下部分展示了如何删除单个索引或如何删除集合中的所有索引。
删除单个索引
将索引名称传递给dropIndex()方法,从集合中删除索引。
以下示例从movies集合中删除名为"_title_"的索引
collection.dropIndex("_title_")
注意
您不能从复合文本索引中删除单个字段。您必须删除整个索引并创建一个新的索引来更新索引字段。
删除所有索引
您可以通过调用您的集合上的 dropIndexes()
方法来删除所有索引
collection.dropIndexes()
API 文档
要了解更多关于本指南中讨论的任何方法或类型的信息,请参阅以下 API 文档