Dette er et sent svar, men siden $group i Mongo fra version 4.0 stadig ikke vil gøre brug af indekser, kan det være nyttigt for andre.
For at fremskynde din aggregering betydeligt, udfør en $sort før $group .
Så din forespørgsel ville blive:
db.ads_view.aggregate({$sort:{"campaign":1}},{$group: {_id : "$campaign", "action" : {$sum: 1} }});
Dette forudsætter et indeks på campaign , som skulle være oprettet i henhold til dit spørgsmål. I Mongo 4.0 skal du oprette indekset med db.ads_view.createIndex({campaign:1}) .
Jeg testede dette på en samling indeholdende 5,5+ mio. Dokumenter. Uden $sort , ville sammenlægningen ikke være færdig, selv efter flere timer; med $sort forud for $group , aggregering tager et par sekunder.