MongoDB 支持哪些类型的索引?

推荐答案

MongoDB 支持以下几种类型的索引:

  1. 单字段索引:在单个字段上创建的索引。
  2. 复合索引:在多个字段上创建的索引。
  3. 多键索引:在数组字段上创建的索引,数组中的每个元素都会被索引。
  4. 地理空间索引:用于地理空间数据的索引,支持 2d 和 2dsphere 索引。
  5. 文本索引:用于全文搜索的索引。
  6. 哈希索引:使用哈希函数对字段值进行索引,适用于等值查询。
  7. TTL 索引:用于自动删除过期文档的索引。
  8. 唯一索引:确保索引字段的值在集合中是唯一的。
  9. 稀疏索引:只对包含索引字段的文档进行索引。
  10. 部分索引:只对满足特定条件的文档进行索引。

本题详细解读

单字段索引

单字段索引是最简单的索引类型,适用于在单个字段上进行查询的场景。例如,在 users 集合的 name 字段上创建单字段索引:

复合索引

复合索引适用于在多个字段上进行查询的场景。例如,在 users 集合的 nameage 字段上创建复合索引:

多键索引

多键索引适用于数组字段,数组中的每个元素都会被索引。例如,在 users 集合的 tags 字段上创建多键索引:

地理空间索引

地理空间索引适用于地理空间数据的查询。MongoDB 支持 2d 和 2dsphere 索引。例如,在 places 集合的 location 字段上创建 2dsphere 索引:

文本索引

文本索引适用于全文搜索。例如,在 articles 集合的 content 字段上创建文本索引:

哈希索引

哈希索引使用哈希函数对字段值进行索引,适用于等值查询。例如,在 users 集合的 email 字段上创建哈希索引:

TTL 索引

TTL 索引用于自动删除过期文档。例如,在 logs 集合的 createdAt 字段上创建 TTL 索引,设置文档在 3600 秒后过期:

唯一索引

唯一索引确保索引字段的值在集合中是唯一的。例如,在 users 集合的 username 字段上创建唯一索引:

稀疏索引

稀疏索引只对包含索引字段的文档进行索引。例如,在 users 集合的 email 字段上创建稀疏索引:

部分索引

部分索引只对满足特定条件的文档进行索引。例如,在 users 集合的 age 字段上创建部分索引,只索引 age 大于 18 的文档:

纠错
反馈