Gruppierung I haben eine Kartenansicht reduzieren:die Ausgabe eines CouchDB Ansicht
.....
emit(diffYears, doc.xyz);
reduced with _sum.
xyz ist dann eine Zahl, die pro ganze Zahl summiert wird (diffYears).
Die Ausgabe sieht in etwa wie folgt aus:
4 1204.9
5 796.19
6 1124.8
7 1112.6
8 1993.62
9 159.26
10 395.41
11 456.05
12 457.97
13 39.80
14 483.68
15 269.469
etc..
Was würde Ich mag es, die Ergebnisse Gruppe tun, wie folgt:
Grouping Total per group
0-4 1959.2 i.e add up the xyz's for years 0,1,2,3,4
5-9 3998.5 same for 5,6,7,8,9 ...etc.
10-14 3566.3
ich einen Vorschlag sah, wo eine Liste auf einer Ansicht verwendet wurde Ausgabe hier: Using a CouchDB view, can I count groups and filter by key range at the same time? aber konnte nicht angepasst werden, um irgendein Ergebnis zu erhalten. Der Code gegeben ist:
{
_id: "_design/authors",
views: {
authors_by_date: {
map: function(doc) {
emit(doc.date, doc.author);
}
}
},
lists: {
count_occurrences: function(head, req) {
start({ headers: { "Content-Type": "application/json" }});
var result = {};
var row;
while(row = getRow()) {
var val = row.value;
if(result[val]) result[val]++;
else result[val] = 1;
}
return result;
}
}
}
I var val = row.key
in diesem Abschnitt ersetzt: (. Obwohl das Ergebnis in diesem Fall ist eine Zählung)
while(row = getRow()) {
var val = row.value;
if(result[val]) result[val]++;
else result[val] = 1;
}
Dies scheint der Weg zu sein TU es.
(Es ist wie ein Start-und Endkey für jede Gruppierung, die ich manuell tun kann, natürlich, aber nicht in einem Prozess. Oder gibt es eine Möglichkeit, mehrere Start- und Ende-Tasten in einen GET-Befehl einzugeben ????)
Dies muss eine ziemlich normale Sache sein, besonders für Forscher, die statistische Analyse verwenden.
Ich nehme daher an, dass es getan wird, aber ich kann Beispiele nicht finden, soweit CouchDB betroffen ist.
Ich würde einige Hilfe mit diesem bitte oder einen Zeiger in die richtige Richtung schätzen.
Vielen Dank.
EDIT: Vielleicht liegt die Antwort in einem Prozess in "reduzieren", um die Ausgabe zu gruppieren?
@ sarwar Danke. Genau das, was ich brauchte. – jlb333333