Jeder Test, den ich persönlich durchgeführt habe (einschließlich der Verwendung Ihrer eigenen Daten), zeigt, dass das Aggregations-Framework um ein Vielfaches schneller ist als die Kartenreduzierung und normalerweise eine Größenordnung schneller ist.
Ich nehme nur 1/10 der von Ihnen geposteten Daten (aber anstatt den OS-Cache zu löschen und zuerst den Cache aufzuwärmen - weil ich die Leistung der Aggregation messen möchte und nicht, wie lange es dauert, die Daten einzulagern), habe ich Folgendes erhalten:
MapReduce:1.058 ms
Aggregation Framework:133 ms
Das Entfernen von $match aus dem Aggregation Framework und {query:} aus mapReduce (weil beide nur einen Index verwenden würden und das ist nicht das, was wir messen möchten) und das Gruppieren des gesamten Datensatzes nach key2 ergab:
MapReduce:18.803 ms
Aggregation Framework:1.535 ms
Diese stimmen sehr gut mit meinen früheren Experimenten überein.