Dit is een laat antwoord, maar sinds $group
in Mongo vanaf versie 4.0 zal nog steeds geen gebruik worden gemaakt van indexen, het kan nuttig zijn voor anderen.
Voer een $sort
. uit om uw aggregatie aanzienlijk te versnellen voor $group
.
Dus uw vraag zou worden:
db.ads_view.aggregate({$sort:{"campaign":1}},{$group: {_id : "$campaign", "action" : {$sum: 1} }});
Dit veronderstelt een index op campaign
, die op basis van uw vraag had moeten zijn gemaakt. Maak in Mongo 4.0 de index met db.ads_view.createIndex({campaign:1})
.
Ik heb dit getest op een verzameling van 5,5+ Mio. documenten. Zonder $sort
, de aggregatie zou zelfs na enkele uren niet zijn voltooid; met $sort
voorafgaand aan $group
, aggregatie duurt een paar seconden.