【问题标题】:What are the limitations of partial indexes?部分索引的局限性是什么?
【发布时间】:2016-03-21 10:44:31
【问题描述】:

最新版本的 MongoDB (v3.2) 增加了对 partial (filtered) indexes 的支持。您在创建索引时提供了一个过滤器,该过滤器决定了哪些文档将在索引中被引用,哪些不会。

我可以使用任何过滤器表达式(只要它是有效的过滤器)?或者使用的过滤器有限制吗?如果有,有哪些限制?

【问题讨论】:

    标签: mongodb indexing filtered-index partial-index


    【解决方案1】:

    我可以使用任何过滤器表达式吗?

    不,部分索引仅支持所用过滤器中运算符的子集。唯一支持的运算符是:$AND(仅在顶层)、$EQ$LT$LTE$GT$GTE$EXISTSTYPE_OPERATOR

    省略,例如 $NOT$REGEX$OR 等。

    您可以在 MongoDB here 的源代码中看到。

    这些限制是什么?

    部分索引也有一些一般限制:

    • _id 索引不能是部分索引。
    • 稀疏索引不能是部分索引。
    • 分片键索引不能是部分索引。
    • 3.2 之前的版本不支持部分索引。

    【讨论】:

    • 这似乎无法从 C# 驱动程序中完成。至少我不认为 PartialIndexFilter 是 CreateIndexOptions 类的属性
    • @RalphShillington PartialFilterExpression 怎么样?
    • @i3amon 你说得对!我的错误是在做 var options = new CreateIndexOptions();不设置泛型类型。
    • 是否可以创建第二个_id 部分索引(使用不同的名称)? (我正在尝试制作某种默认过滤器视图,它会自动排除列入黑名单的内容)
    猜你喜欢
    • 1970-01-01
    • 2014-05-11
    • 2015-07-02
    • 1970-01-01
    • 2022-11-25
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    相关资源
    最近更新 更多