Прежде всего, важно определиться с тем, что является «достаточно быстрым».Несомненно, есть более быстрые решения, чем карта / сокращение MongoDB, но в большинстве случаев вы можете рассчитывать на значительно более высокую стоимость разработки.
Это означает, что карта / уменьшение MongoDB работает во время записи в одном потоке, что означает, что он не будет использовать все доступные ему процессоры.Кроме того, у MongoDB очень мало собственных функций агрегирования.Это будет исправлено с версией 2.1 и выше, что должно улучшить производительность (см. https://jira.mongodb.org/browse/SERVER-447 и http://www.slideshare.net/cwestin63/mongodb-aggregation-mongosf-may-2011).
Теперь, что хорошо в MongoDB - это легко масштабировать, особенно когда дело касается чтения.И это важно, потому что лучшее решение для перехвата чисел в больших наборах данных, безусловно, является облаком карт / редукции, как предложил Аугусто.Низкий уровень легко решается добавлением большего количества фрагментов Монго. Слишком низкая производительность обработки / агрегирования чисел решается добавлением большего количества блоков m / r. В основном производительность становится функцией числа экземпляров, зарезервированных для проблемы, и, следовательно, стоимости.