我有一个包含数百万行的mongoDB集合,我正在try 优化我的查询.我目前正在使用聚合框架来检索数据,并根据需要对它们进行分组.我典型的聚合查询是:$match > $group > $ group > $project
然而,我注意到最后的部分只需要几毫秒,开始是最慢的.
我try 只使用$match过滤器执行查询,然后使用collection执行相同的查询.发现聚合查询需要约80毫秒,而查找查询需要0或1毫秒.
我几乎每个字段都有索引,所以我想这不是问题所在.知道会出什么问题吗?或者这只是聚合框架的一个"正常"缺陷?
我可以使用find查询而不是聚合查询,但是我必须在请求后执行大量处理,这个过程可以用$group
等快速完成.所以我宁愿保留聚合框架.
谢谢
编辑:
以下是我的标准:
{
"action" : "click",
"timestamp" : {
"$gt" : ISODate("2015-01-01T00:00:00Z"),
"$lt" : ISODate("2015-02-011T00:00:00Z")
},
"itemId" : "5"
}