我有以下查询:
a : true AND (b : 1 OR b : 2) AND ( c: null OR (c > startDate AND c <endDate))
所以基本上我正在考虑所有三个字段的复合索引,因为我根本没有排序。第一步,使用布尔字段上的索引,我将消除文档的最大部分。
然后使用第二个字段上的索引,我看到 OR 子句创建了两个单独的查询,然后将它们组合起来,同时删除重复项。所以这应该是非常快速和有效的。
最后一个条件是一个简单的日期范围,所以我认为将字段添加到索引将是一个不错的选择。
对我的想法有什么建议吗?谢谢