Всеки тест, който лично провеждах (включително използването на вашите собствени данни), показва, че рамката за агрегиране е многократно по-бърза от намаляването на картата и обикновено е с порядък по-бърза.
Само вземайки 1/10 от данните, които сте публикували (но вместо да изчиствам кеша на ОС, първо да затопля кеша - защото искам да измеря производителността на агрегирането, а не колко време отнема да се прекара страницата в данните) получих това:
MapReduce:1,058 мс
Рамка за агрегиране:133 мс
Премахване на $match от рамката за агрегиране и {query:} от mapReduce (защото и двете просто биха използвали индекс и това не е това, което искаме да измерим) и групиране на целия набор от данни по key2, получих:
MapReduce:18 803 мс
Рамка за агрегиране:1535 мс
Те са много в съответствие с предишните ми експерименти.