首页/数据/NoSQL 速查/部分索引只索引子集
本包目录(322 条)
MongoDB99 条
Elasticsearch89 条ClickHouse56 条时序与列式28 条选型与架构50 条

部分索引只索引子集

partialFilterExpression 让索引只覆盖满足条件的文档:空间更小、写放大更低,但查询必须包含兼容条件才能命中。

NoSQL 速查数据更新于 2026-10-12
定义createIndex({ email: 1 }, { partialFilterExpression: { status: "active" }, unique: true })
命中前提查询条件蕴含(或等于)该过滤表达式

示例

示例
db.users.createIndex({ email: 1 }, { partialFilterExpression: { status: "active" }, unique: true })
db.users.find({ email: "a@example.com", status: "active" }).explain("executionStats")
“唯一约束只对特定状态生效”用部分索引表达,比全量唯一索引更贴合业务。

易错点

  • 过滤表达式不满足蕴含关系时查询用不上部分索引,会退回集合扫描

数据来源与参考

  • MongoDB Manual: Partial Indexes
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌