MongoDB 索引的作用及创建方法

阅读时长 4 分钟读完

什么是 MongoDB 索引?

MongoDB 索引是一种能够提高数据库查询效率的数据结构,在 MongoDB 中,所有数据都存储在集合(collection)中,索引能够帮助我们更快速地查找集合中的数据。MongoDB 支持多种类型的索引,例如单键索引、复合索引等。有些类型的索引可以支持排序、分组、聚合等操作,大大提高查询效率。

索引的作用

MongoDB 索引主要有以下几个作用:

  1. 提高查询性能:索引可以把查询用时从全表扫描降到数据集中的一个小部分,从而减轻了服务器的负担,提高了查询的效率。
  2. 索引可以帮助 MongoDB 根据文档的值进行排序和聚合。
  3. 索引可以帮助避免集合中的重复值。
  4. 一些类型的索引可以实现唯一性约束,即索引值不能重复出现。

创建索引

MongoDB 提供了多种创建索引的方法,主要有以下几种:

单键索引

单键索引是最简单的一种索引类型,它只包含一个字段,是最基本也是最常用的索引类型。下面是创建单键索引的示例代码:

这里的 field 是要创建索引的字段名,数字 1 表示升序,数字 -1 表示降序。

复合索引

复合索引是包含多个字段的索引,它可以使查询更加高效,同时也可以减少存储空间。下面是创建复合索引的示例代码:

这里的 field1field2 分别是两个要创建索引的字段名,数字 1 表示 field1 升序,数字 -1 表示 field2 降序。

索引选项

除了指定字段名和排序方式之外,还可以通过索引选项来创建更加定制化的索引。下面是一些常用的索引选项:

选项 描述
unique 是否唯一索引
sparse 是否稀疏索引
background 后台创建索引,不阻塞其它操作
name 显式命名索引,否则系统会自动为索引命名
expireAfter 过期时间
partialFilterExpression 创建部分索引

下面以 uniquepartialFilterExpression 为例,演示如何创建带选项的索引。

唯一索引

唯一索引可以保证索引字段的唯一性,下面展示如何创建唯一索引:

这里的 field 是要创建唯一索引的字段名,选项 { unique: true } 表示该字段的值必须唯一,否则将无法创建该索引。

创建部分索引

部分索引是只针对满足特定条件的文档进行索引,比如只有某些文档是有意义的。下面展示如何创建一个只对满足特定条件的文档进行索引的例子:

这里的 field 是要创建部分索引的字段名,选项 { partialFilterExpression: { status: { $in: ['active', 'pending'] } } } 表示只有 status 字段的值为 activepending 的文档被索引。

总结

索引是 MongoDB 中提高查询效率的重要手段,通过创建不同类型的索引,可以从多方面提升查询性能。希望读者能够掌握 MongoDB 索引的基本知识,并能在工作中熟练地运用它们。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6465efb5968c7c53b069a0a4

纠错
反馈