索引属性
索引属性会影响查询规划器使用索引的方式以及索引文档的存储方式。您可以在创建索引时指定索引属性作为可选参数。
以下部分解释了在构建索引时可以指定的索引属性。
注意
并非所有索引类型都与所有索引属性兼容。
不区分大小写的索引
不区分大小写的索引 支持对字符串进行查询,而不考虑字母的大小写。
隐藏索引
隐藏索引 对查询计划不可见,不能用于支持查询。
您可以使用隐藏索引来评估删除索引可能产生的影响,而不实际删除它。如果影响是负面的,您可以取消隐藏索引,而不是重新创建已删除的索引。隐藏索引得到完全维护,一旦取消隐藏即可立即使用。
部分索引
部分索引 只对满足指定过滤表达式的集合中的文档进行索引。部分索引具有较低的存储要求,并降低了索引创建和维护的性能成本。
部分索引提供了稀疏索引功能的超集,应优先考虑使用部分索引。
稀疏索引
稀疏索引 只包含具有索引字段的文档条目。这些索引会跳过没有索引字段的文档。
TTL 索引
TTL 索引 会自动在一段时间后从集合中删除文档。对于只需持久化有限时间的数据库,如机器生成的事件数据、日志和会话信息,请使用这些索引。
唯一索引
唯一索引 会导致 MongoDB 拒绝索引字段重复值。当您的文档包含唯一的标识符时,这些索引很有用,例如userId
.