如何通过索引优化MongoDB搜索?

如何通过索引优化MongoDB搜索?,mongodb,indexing,aggregation-framework,Mongodb,Indexing,Aggregation Framework,这些文档位于我的MongoDB收藏中: { "_id" : ObjectId("57f5e1b5c7739d9805edfe85"), "date" : ISODate("2016-10-01T00:00:00.000Z"), "query" : "test1", "page" : "page1/runway/ready-to-wear/ss17/2016/10/christian-dior/", "clicks" : 17.0, "impressions" : 161.

这些文档位于我的MongoDB收藏中:

{
  "_id" : ObjectId("57f5e1b5c7739d9805edfe85"),
  "date" : ISODate("2016-10-01T00:00:00.000Z"),
  "query" : "test1",
  "page" : "page1/runway/ready-to-wear/ss17/2016/10/christian-dior/",
  "clicks" : 17.0,
  "impressions" : 161.0,
  "ctr" : 0.10559006211180125,
  "position" : 8.503105590062113
}
{
  "_id" : ObjectId("57f5e1b5c7739d9805edfe86"),
  "date" : ISODate("2016-10-01T00:00:00.000Z"),
  "query" : "test1",
  "page" : "page2/runway/ready-to-wear/ss17/2016/10/christian-dior/",
  "clicks" : 17.0,
  "impressions" : 161.0,
  "ctr" : 0.10559006211180125,
  "position" : 8.503105590062113
}
{
  "_id" : ObjectId("57f5e1b5c7739d9805edfe87"),
  "date" : ISODate("2016-10-01T00:00:00.000Z"),
  "query" : "test2",
  "page" : "page3/runway/ready-to-wear/ss17/2016/10/christian-dior/",
  "clicks" : 17.0,
  "impressions" : 161.0,
  "ctr" : 0.10559006211180125,
  "position" : 8.503105590062113
}
我需要筛选并获取以下文档:

{
  "_id" : ObjectId("57f5e1b5c7739d9805edfe85"),
  "date" : ISODate("2016-10-01T00:00:00.000Z"),
  "query" : "test1",
  "page" : "page1/runway/ready-to-wear/ss17/2016/10/christian-dior/",
  "clicks" : 17.0,
  "impressions" : 161.0,
  "ctr" : 0.10559006211180125,
  "position" : 8.503105590062113
}
{
  "_id" : ObjectId("57f5e1b5c7739d9805edfe86"),
  "date" : ISODate("2016-10-01T00:00:00.000Z"),
  "query" : "test1",
  "page" : "page2/runway/ready-to-wear/ss17/2016/10/christian-dior/",
  "clicks" : 17.0,
  "impressions" : 161.0,
  "ctr" : 0.10559006211180125,
  "position" : 8.503105590062113
}
我使用query field创建了一个索引,并使用如下方法运行
db.query

{ 
     "aggregate" : "Mycollection Name" ,
     "pipeline" : [ 
         { "$match" : { "$text" : { "$search" : "\"test1\""}}},
         { "$match" : { "date" : { "$gte" : { "$date" : "2016-10-  01T00:00:00.000Z"} ,"$lte" : { "$date" : "2016-10-01T00:00:00.000Z"}}}},
         { "$group" : { "_id" : "$page" , "clicks" : { "$sum" : "$clicks"} ,  "impressions" : { "$sum" : "$impressions"} , "ctr" : { "$avg" : "$ctr"} ,  "position" : { "$avg" : "$position"}}} , 
         { "$sort" : { "clicks" : -1}}
      ]
}
此查询正在运行,但不完全返回搜索


如何优化此查询?

欢迎使用堆栈溢出。请检查:我认为索引最适合
where
子句,而不是
aggregate