首页 > 解决方案 > 当查询不符合部分索引过滤器表达式时,MongoDB 是否可以强制对字段使用部分索引?

问题描述

是否有可能让查询返回 0 个结果(如果不存在索引,则可能至少有 1 个结果),因为正在查询的字段的部分索引不包括符合条件的文档?

导致这个问题的场景是有一个部分索引,它通过exists过滤器对字段强制唯一性,这样它将忽略该字段所在的文档null

如果存在一种方法,以便null对该字段的值的任何查询仍然使用该部分索引并且不返回任何结果,那将是理想的 - 避免在这种情况下实际发生并导致非常慢的查询的完整集合扫描.

标签: mongodbindexingmongodb-query

解决方案


我看到的唯一解决方案是添加yourField: { $exists: true }条件所有查询,这些查询尚未过滤该字段。(其他需要ofc的字段也满足索引要求。)


推荐阅读