Суммирование атрибутов документа MongoDB за интервал - каким путем? - PullRequest
1 голос
/ 30 января 2011

У меня есть документы на монго на каждый час, и все они имеют одинаковые атрибуты.Какой наилучший способ суммировать каждый атрибут за определенный период времени?

Я знаю, что мог бы использовать map-Reduce, но, возможно, есть способ просто выполнить простую group функцию, которая суммирует каждый атрибут.Мне в основном интересно с точки зрения производительности.

Спасибо!

1 Ответ

0 голосов
/ 30 января 2011

Как вы и сказали, сокращение карт - это способ агрегации Монго, особенно если вы планируете ограждать свои данные, тогда это единственный способ агрегирования.

Мне действительно нравится эта диаграмма , которая иллюстрирует, как "преобразовать" групповой запрос в карту-редукции Монго.

Относительно вашей заботы о производительности:

  1. Сначала запросите соответствующие записи - помните, что уменьшение карты Монго обычно выполняется в результате запрос, поэтому сделайте запрос быстрее, используя индексы и т. д.
  2. Отображение и сокращение выполняется на сервере Монго, поэтому при передаче данных не возникает никаких дополнительных затрат.
  3. Вы можете улучшить производительность с помощью шардинга. (на одном узле map-Reduce в настоящее время работает в однопоточном . (говорят, они ищут способы изменить это))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...