sql >> Base de Datos >  >> NoSQL >> MongoDB

El marco agregado no puede usar índices

Esta es una respuesta tardía, pero desde $group en Mongo a partir de la versión 4.0 aún no utilizará índices, puede ser útil para otros.

Para acelerar significativamente su agregación, realice un $sort antes de $group .

Entonces su consulta se convertiría en:

db.ads_view.aggregate({$sort:{"campaign":1}},{$group: {_id : "$campaign", "action" : {$sum: 1} }});

Esto supone un índice en campaign , que debería haberse creado de acuerdo con su pregunta. En Mongo 4.0, cree el índice con db.ads_view.createIndex({campaign:1}) .

Probé esto en una colección que contenía 5.5+ Mio. documentos. Sin $sort , la agregación no habría terminado incluso después de varias horas; con $sort anterior $group , la agregación está tardando un par de segundos.