MongoDB - MapReduce с ведением временных рядов - PullRequest
0 голосов
/ 01 марта 2020

У меня есть схема, основанная на модели группировки временных рядов. Сейчас я пытаюсь преобразовать некоторые конвейеры агрегации в модели MapReduce, но я не могу понять, что является эквивалентом «раскрутки» в MapReduce. Вот моя модель:

схема временных рядов

Например, как я могу суммировать все значения в "val_per_day_dt" за "SITE_ID"?

1 Ответ

0 голосов
/ 03 марта 2020

Использование входного документа (краткая версия размещенного изображения) следующим образом:

{
  _id: 1,
  site_id: "512",
  industry: "Food Sales",
  val_per_day_dt: {
      "2012-04-13 00:05:00": 23.4087,
      "2012-04-13 00:10:00": 26.0463,
      "2012-04-13 00:15:00": 27.3761
  }
}

Функции отображения и сокращения:

m1 = function() {
        for (let k in this.val_per_day_dt) {
            emit(this.site_id, this.val_per_day_dt[k])
        }
}

r1 = function(k, v) {
         return Array.sum(v);
}

Запустите метод mapReduce:

db.collection.mapReduce(
    m1,
    r1,
   { out: "collection_out" }
)

collection_out имеет следующий результат:

{ "_id" : "512", "value" : 76.83109999999999 }
...