最新版本的MongoDB(v3.2)增加了对partial (filtered) indexes的支持。您在创建索引时提供过滤器,该过滤器确定将在索引中引用哪些文档,哪些不会。
我可以使用任何过滤器表达式(只要它是有效的过滤器)吗?或者使用过滤器有限制吗?如果是这样,那些限制是什么?
答案 0 :(得分:14)
我可以使用任何过滤器表达式吗?
不,部分索引仅支持所用过滤器中的运算符子集。唯一受支持的运算符为:$AND
(仅限顶层),$EQ
,$LT
,$LTE
,$GT
,$GTE
,{ {1}}和$EXISTS
。
遗漏了,例如TYPE_OPERATOR
,$NOT
,$REGEX
等。
您可以在MongoDB here的源代码中看到它。
有哪些限制?
部分索引也有一些一般限制:
$OR
索引不能是部分索引。