一架梯子,一头程序猿,仰望星空!
MongoDB面试题 > 内容正文

什么是MongoDB的索引?有哪些类型的索引?


问题简答

MongoDB 的索引是用来提高查询性能的数据结构。跟MYSQL索引类似,它可以快速地定位需要查询的数据,并且可以帮助 MongoDB 对数据进行排序、分组和聚合等操作。

问题详解:

MongoDB支持的索引类型

  1. 单键索引:对单个字段建立的索引。
  2. 复合索引:对多个字段建立的索引,可以支持复杂的查询操作。
  3. 多键索引:对数组或嵌套文档中的字段建立的索引。
  4. 地理空间索引:用于处理地理空间数据的索引。
  5. 全文索引:用于全文搜索的索引,支持文本、HTML、XML 和 JSON 数据类型。
  6. 哈希索引:用于哈希表的索引,可以高效地处理等值查询操作。
  7. TTL 索引:用于自动删除过期数据的索引。

MongoDB索引创建例子

1. 创建单字段索引:

db.collection.createIndex( { field: 1 } )

提示:多键索引,使用 点 “.” 连接多个字段名即可。

2. 创建复合索引:

db.collection.createIndex( { field1: 1, field2: -1 } )

3. 创建全文索引:

db.collection.createIndex( { field: "text" } )

4. 创建地理空间索引:

db.collection.createIndex( { field: "2dsphere" } )

5. 创建哈希索引:

db.collection.createIndex( { field: "hashed" } )

6. 创建唯一索引:

db.collection.createIndex( { field: 1 }, { unique: true } )

7. 创建TTL索引:

db.collection.createIndex( { createdAt: 1 }, { expireAfterSeconds: 3600 } )