增加索引后的MongoDB查询

增加索引后的MongoDB查询,mongodb,Mongodb,我在mongo中有一个相当大的数据库,这个特定集合有5万个文档,我想提高查询性能: 这是生成瓶颈的查询的一个片段: $or: [ { recurring: { $exists: true } }, { 'event.start': { $gte: Moment(dayFrom) .startOf('day') .toDate(), $lt: Moment(dayTo)

我在mongo中有一个相当大的数据库,这个特定集合有5万个文档,我想提高查询性能:

这是生成瓶颈的查询的一个片段:

$or: [
   {
      recurring: { $exists: true }
   },
   {
      'event.start': {
         $gte: Moment(dayFrom)
             .startOf('day')
             .toDate(),
         $lt: Moment(dayTo)
             .endOf('day')
             .toDate()
         },
      recurring: { $exists: false }
]
这个
$或
正在扼杀我的查询性能,如果我删除它,我可以在60毫秒内运行查询,如果我保留它,它将在2.5秒内运行

我的索引包括应用于查询的所有筛选器


在这些匹配中,我有其他简单的匹配表达式,一些
$projects
映射我的结果

获取查询计划、获胜计划、拒绝计划,以及使用解释函数使用的索引。它会给你一些关于背后发生的事情的提示