Chaque test que j'ai personnellement exécuté (y compris en utilisant vos propres données) montre que le cadre d'agrégation est un multiple plus rapide que la réduction de carte, et généralement d'un ordre de grandeur plus rapide.
En prenant juste 1/10e des données que vous avez publiées (mais plutôt que de vider le cache du système d'exploitation, réchauffez d'abord le cache - parce que je veux mesurer les performances de l'agrégation, et non le temps qu'il faut pour paginer les données), j'ai obtenu ceci :
MapReduce :1 058 ms
Cadre d'agrégation :133 ms
En supprimant le $match du cadre d'agrégation et {query :} de mapReduce (car les deux utiliseraient simplement un index et ce n'est pas ce que nous voulons mesurer) et en regroupant l'ensemble de données complet par key2, j'ai :
MapReduce :18 803 ms
Cadre d'agrégation :1 535 ms
Cela correspond tout à fait à mes expériences précédentes.