Wie bekomme ich Summe aller CouchDB -Werte?
Frage
Wie kann man die Summe je nach ID oder so extrahieren, um die Summe aller Werte zu erhalten?
Ich bin in der Lage, alle Werte zu erhalten, aber die Canotsumme ist eine einzelne Variable, daher muss es eine Art Segmentierung geben, um sie zusammenzufassen? irgendwelche Ideen?
$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);
}
}});
}
BEARBEITEN:
Mein JSON sieht so aus:
{
"_id": "1a06982d3434f37a04a02dbf360010ee",
"_rev": "1-c8c9d5252a76abd8f565ff82bf63b0e8",
"value": "200",
"date": "2011-09-05T10:28:55.101Z"
}
Und meine Aussicht sieht so aus:
function(doc) {
if (doc.value, doc.date) {
emit(doc.value,doc.date, doc);
}
}
Lösung
Sie müssen nur eine Reduzierungsfunktion hinzufügen, z. B., z. B.
function(keys, values, rereduce) {
return sum(values);
}
Dies ist so häufig, dass wir eine integrierte Funktion haben, die viel schneller ist.
_sum
Sie müssen den Wert abgeben, den Sie als Wert zusammenfassen möchten, also so etwas wie;
function(doc) {
emit(doc.date, doc.value);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow