本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
单字段索引
单字段索引存储来自文档集合中任何单个字段的信息。默认情况下,所有集合_id在该字段上都有索引。您可以添加其他索引以加快重要查询和操作的速度。
在以下情况下,单字段索引很有用:
-
您的应用程序经常根据特定字段的值查询或筛选文档。
-
您需要按特定字段高效地对文档进行排序。
-
您希望通过创建唯一索引来确保集合中文档中特定字段的唯一性。
支持的索引属性
| Option | 3.6 | 4.0 | 5.0 | 8.0 | 弹性集群 |
|---|---|---|---|---|---|
| name | 支持 | 是 | 是 | 是 | 是 |
| 独特 | 支持 | 是 | 是 | 是 | 是 |
| 稀疏* | 支持 | 是 | 是 | 是 | 是 |
| 部分 FilterExpression * | 否 | 否 | 是 | 是 | 否 |
| 到期 AfterSeconds | 支持 | 是 | 是 | 是 | 是 |
* sparse 和partialFilterExpression选项不能在同一个索引定义中一起使用。如果您尝试使用这些选项创建索引,它将失败并显示以下错误:
Error in specification: cannot mix partialFilterExpression and sparse options
创建单个字段索引
使用createIndex()方法创建单个字段索引。语法如下:db.collection.createIndex(<key>, <options>)。
key参数是一个 JSON 文档,用于指定字段和索引排序顺序:
{ "<field>": <1 (ascending)|-1 (descending)> }
options参数是一个 JSON 文档,用于指定索引的选项:
{ "name": "<name>", "unique": <true | false>, "sparse": <true | false>, "partialFilterExpression": <filter expression>, "expireAfterSeconds": <seconds before expiry> }
有关创建单字段索引的示例,请参阅索引属性。