我有一个拥有超过1亿个文档的mongodb数据库。我想做聚合,所以我可以提供文件的统计数据。 我的文件看起来像:
{
"categ": "categ_4",
"code": 200,
"date": "01/01/2017",
"host": "www.myhost.com",
"hour": "19",
"http_ver": "HTTP/1.1",
"idate": 20170101,
"length": 21,
"protocol": "https",
"remote_ip": "111.22.333.44",
"resp_time": 0,
"time": "19:53:15",
"url": "my_url",
}
聚合时,我在我的shell中执行这样的查询:
db.data.aggregate([{"$match": {"code":200}}, {"$group": {_id : "$code", total : {"$sum" : 1}}},{"$sort" : {_id: 1}}])
问题是计算需要很长时间。这太慢了。有没有办法加快这个操作? 我试图在"代码"上创建索引。领域但没有成功
db.data.createIndex({code:1})
我可以做些什么来加快汇总速度?
谢谢
答案 0 :(得分:2)
似乎您的查询与
相同db.data.count({"code":200})
你不需要聚合。尝试简单计数(带索引)