Każdy test, który przeprowadziłem osobiście (w tym z wykorzystaniem Twoich własnych danych), pokazuje, że struktura agregacji jest wielokrotnie szybsza niż redukcja mapy i zwykle jest szybsza o rząd wielkości.
Po prostu biorąc 1/10 opublikowanych danych (ale zamiast wyczyścić pamięć podręczną systemu operacyjnego, najpierw rozgrzać pamięć podręczną - ponieważ chcę zmierzyć wydajność agregacji, a nie ile czasu zajmuje strona w danych) mam to:
MapReduce:1058 ms
Struktura agregacji:133 ms
Usunięcie $match z frameworka agregacji i {query:} z mapReduce (ponieważ oba używałyby po prostu indeksu, a to nie jest to, co chcemy mierzyć) i grupowanie całego zestawu danych według klucza 2, dostałem:
MapReduce:18 803 ms
Struktura agregacji:1535 ms
Są one bardzo zgodne z moimi poprzednimi eksperymentami.