多个$ gte和$ lte条件查询

时间:2019-04-27 13:33:19

标签: mongodb mongoose

我遇到一种情况,客户可能会查询带有某些日期范围的某些值,例如:

相等条件

  • field_1等于value_1
  • field_2等于value_2
  • field_3在数组values_3

范围条件(OR)

  • date_1大于date_value_1_1并且小于date_value_1_2
  • date_2大于date_value_2_1并且小于date_value_2_2
  • date_3大于date_value_3_1并且小于date_value_3_2

所有查询的字段均已建立索引。我有以下几个问题:

  1. MongoDB将如何执行此查询,并将使用所有索引?

  2. 我记得在某个地方读到MongoDB仅使用索引直到第一个范围条件,对吗?

  3. 查询中条件的顺序重要吗?

  4. 对于单个字段上大于和小于的组合条件,MongoDB将如何执行?它会找到所有值都大于提供的值的文档,然后在该子集中找到所有值都小于提供的值的文档,还是会找到两个大于最后一个子集并开始小于然后将它们组合在一起的子集? / p>

  5. 范围条件为AND时有什么区别吗?

  6. 在这种情况下,日期范围是从某天到某天,如果我添加另一个字段以指示文档属于哪一天只进行相等条件的查询,有什么区别吗?

0 个答案:

没有答案