mongodb - 当查询不符合部分索引过滤器表达式时,MongoDB 是否可以强制对字段使用部分索引?
问题描述
是否有可能让查询返回 0 个结果(如果不存在索引,则可能至少有 1 个结果),因为正在查询的字段的部分索引不包括符合条件的文档?
导致这个问题的场景是有一个部分索引,它通过exists
过滤器对字段强制唯一性,这样它将忽略该字段所在的文档null
。
如果存在一种方法,以便null
对该字段的值的任何查询仍然使用该部分索引并且不返回任何结果,那将是理想的 - 避免在这种情况下实际发生并导致非常慢的查询的完整集合扫描.
解决方案
我看到的唯一解决方案是添加yourField: { $exists: true }
条件所有查询,这些查询尚未过滤该字段。(其他需要ofc的字段也满足索引要求。)
推荐阅读
- html - Angular 2 Bulma 变量不适用于 ngClass 属性
- processing - 带有声音库的 P5JS 实例模式抛出错误
- reactjs - 我可以在生产中使用 React suspense 吗?
- azure - 在 Azure 数据工厂中动态获取嵌套输出
- python - 在 Pycharm 中使用调试模式在执行时评估代码
- javascript - 如何检查 instagram.com/embed.js 是否已在 javascript/jquery 中加载?
- python - 每个主键的 Pandas 仅将具有最大值的行保留到另一列中
- excel - 如何使用 VBA 根据 Excel 中的关键字对文本字符串进行分类?
- fortran - 使用在线 Fortran 编译器从标准输入读取时出现“文件结尾”
- mysql - MySQL 插入失败,索引上有重复条目