Карта / уменьшение является чрезвычайно гибкой и может делать то, что было бы трудно, используя другие методы, но она не будет такой же быстрой или ресурсоэффективной, как менее гибкие методы, если менее гибкие методы делают то, что вам нужно. Я думаю, что это источник идеи, что это «тяжело». Вы можете написать пару функций map / Reduce, чтобы сделать то, что делает db.collection.find ({a: 1}). Count (), но решение count () будет быстрее.
Из вашего описания, карта / уменьшить звуки, как разумный подход. Это дает вам возможность настраивать группировку на основе других полей в документах, если это необходимо, что может быть полезно, если ваши документы не совсем одинаковы. Задание сопоставления / уменьшения добавит нагрузку на сервер, поэтому, если вы едва успеваете за высокой частотой вставок или обновлений, это может быть не очень хорошим дополнением, но это относится к любой добавленной рабочей нагрузке. Если у вас есть такая возможность, лучше всего протестировать и оценить влияние на производительность.