Я бы предложил следующую структуру документа, а также сопоставить и уменьшить функции:
{ date : '2010-11-14', name : 'Tom' }
function(doc) { var r = {}; r[doc.name] = 1; emit (doc.date, r); }
function (keys, values, rereduce) {
var r = {};
for (var i in values) {
for (var k in values[i]) {
if (k in r) r[k] += values[i][k];
else r[k] = values[i][k];
}
}
return r;
}
Затем вы бы запросили представление, запрашивая полное сокращение (без группировки) с параметрами startkey и endkey 2010-11-14
и 2010-11-16
.Вы получите взамен одно значение:
{ 'Tom': 3, 'Dick': 1 }