Der Hauptgrund für die Verwendung von MapReduce gegenüber einfacheren oder traditionelleren Abfragen ist, dass es einfach Dinge tun kann (z. B. Aggregation), die einfache Abfragen nicht können.
Sobald Sie eine Aggregation benötigen, gibt es zwei Optionen mit MongoDB:MapReduce und den Gruppenbefehl. Der Gruppenbefehl ist analog zu SQLs „group by“ und ist dahingehend eingeschränkt, dass er alle seine Ergebnisse in einer einzigen Datenbankantwort zurückgeben muss. Das bedeutet, dass die Gruppe nur verwendet werden kann, wenn Sie weniger als 4 MB an Ergebnissen haben. MapReduce hingegen kann alles tun, was ein "Gruppieren nach" kann, gibt jedoch Ergebnisse an eine neue Sammlung aus, sodass die Ergebnisse so groß wie nötig sein können.
Außerdem kommt die Parallelität, also ist es gut, etwas Übung zu haben :)