У меня есть коллекция с Time
и amountChanged
В течение дня баланс пользователей может увеличиваться или уменьшаться, а общее изменение дня - это сумма этих чисел.
Мое время - миллионы секунд с начала эпохи, а сумма - только целое число
это то, что я пытаюсь уменьшить карту.
def self.map
<<-MAP
function(){
this.tags.forEach(function(time){
date = Date(this.time);
var key = {playerId: this.playerId,
year: date.getFullYear(),
month: date.getMonth(),
day: date.getDate(),
amountChanged: this.amountChanged
};
emit(key, 1);
});
}
MAP
end
def self.reduce
<<-REDUCE
function(key, values)
{
var sum = 0;
values.forEach(function(value)
{
sum += value['amountChanged'];
});
return sum;
};
REDUCE
end
То, что я пытаюсь сделать, это группировать по дням и суммировать значения amountChange, чтобы подсчитать изменение баланса.
Бонусом будет также вывод баланса в начале дня с сгруппированными данными.
Это моя лучшая попытка с примерами, которые я просматривал в Google, думаю, я близок, но отладить сложно.