首页/数据/NoSQL 速查/稀疏索引与缺失字段
本包目录(322 条)
MongoDB99 条
Elasticsearch89 条ClickHouse56 条时序与列式28 条选型与架构50 条

稀疏索引与缺失字段

sparse:true 的索引跳过不含该字段的文档;适合可选字段较多、只想加速“存在值”查询的集合。

NoSQL 速查数据更新于 2026-10-12
定义createIndex({ phone: 1 }, { sparse: true })
行为字段缺失的文档不进入索引
替代建议部分索引语义更明确,新场景更常用

示例

示例
db.users.createIndex({ phone: 1 }, { sparse: true })
db.users.find({ phone: { $exists: true, $ne: null } }).explain("executionStats")
稀疏索引查询里使用 $exists: false 之类“反向条件”无法利用该索引。

易错点

  • 复合稀疏索引只要任一字段存在就会被索引,字段组合语义容易与预期不符

数据来源与参考

  • MongoDB Manual: Sparse Indexes
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌