当查询不适合部分索引过滤器表达式时,是否可以强制MongoDB对字段使用部分索引?

时间:2020-03-10 15:49:22

标签: mongodb indexing mongodb-query

是否有可能返回0个结果的查询(如果不存在索引,则可能将至少有1个结果),因为要查询的字段的部分索引不包含限定条件文件?

导致此问题的方案是使用局部索引,该局部索引使用exists过滤器在字段上强制唯一性,这样它将忽略该字段为null的文档。

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

1 个答案:

答案 0 :(得分:0)

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