Tengo una base de datos mongodb con más de 100 millones de documentos. quiero hacer una agregación para poder dar estadísticas sobre los documentos. mi documento se parece a:
{ "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", }al agregar, realizo una consulta como esta en mi shell:
db.data.aggregate([{"$match": {"code":200}}, {"$group": {_id : "$code", total : {"$sum" : 1}}},{"$sort" : {_id: 1}}])el problema es que lleva mucho tiempo calcular. esto es demasiado lento. ¿Hay alguna forma de acelerar esta operación? intenté crear un índice en el campo "código" pero sin éxito
db.data.createIndex({code:1})¿Qué puedo hacer para que la agregación sea más rápida?
gracias
Parece que tu consulta es la misma que
db.data.count({"code":200})no necesita agregación para eso. Pruebe el conteo simple (con índice)