最新版本的MongoDB(v3.2)增加了对部分(过滤)索引的支持.您在创建索引时提供过滤器,该过滤器确定将在索引中引用哪些文档,哪些不会.
我可以使用任何过滤器表达式(只要它是一个有效的过滤器)?或者使用过滤器有限制吗?如果是这样,那些限制是什么?
我可以使用任何过滤表达式吗?
不,部分索引仅支持所使用的过滤器中的运算符的子集.唯一支持的运营商有:$AND
(只在顶层)$EQ
,$LT
,$LTE
,$GT
,$GTE
,$EXISTS
和TYPE_OPERATOR
.
这使得,例如$NOT
,$REGEX
,$OR
等.
你可以看到,在源的MongoDB 这里.
这些限制是什么?
部分索引也有一些一般限制:
_id
索引不能是部分索引.
稀疏索引不能是部分索引.
分片键索引不能是部分索引.
早于3.2的版本不支持部分索引.