Как получить сумму всех значений CouchDB?
Вопрос
Как извлечь сумму в зависимости от ID или чего -то еще, с целью получения суммы всех значений?
Я могу получить все значения, но Canot Sum Becouse это единственная переменная, поэтому должна быть какая -то сегментация, чтобы суммировать их ?? Любые идеи?
$db = $.couch.db("fuel");
function refreshFuel() {
$("div#fuel").empty();
$db.view("fuel/bill", {success: function(data) {
for (i in data.rows) {
id = data.rows[i].id;
bill = data.rows[i].key;
date = data.rows[i].value;
html = '<div class="fuel">' +
'<span class="bill">' + bill + '</span> ' +
'<span class="date">' + date + '</span> ' +
'</div>';
$("div#fuel").append(html);
}
}});
}
function getAll(){
$("div#all").empty();
$db.view("fuel/bill", {success: function(data) {
for (i in data.rows) {
id = data.rows[i].id;
bill = data.rows[i].key; // how to get SUM of all this values
date = data.rows[i].value;
html =
'<span class="all">' + bill + '</span> '
$("div#all").append(html);
}
}});
}
РЕДАКТИРОВАТЬ:
Мой json выглядит так:
{
"_id": "1a06982d3434f37a04a02dbf360010ee",
"_rev": "1-c8c9d5252a76abd8f565ff82bf63b0e8",
"value": "200",
"date": "2011-09-05T10:28:55.101Z"
}
И мой взгляд выглядит так:
function(doc) {
if (doc.value, doc.date) {
emit(doc.value,doc.date, doc);
}
}
Решение
Вам просто нужно добавить функцию уменьшения, например,
function(keys, values, rereduce) {
return sum(values);
}
Это настолько распространено, что у нас есть встроенная функция, которая намного быстрее;
_sum
Вам нужно будет издавать значение, которое вы хотите суммировать в качестве значения, так что что -то вроде;
function(doc) {
emit(doc.date, doc.value);
}
Не связан с StackOverflow