我有问题在沙发数据库中分组日期范围结果。 说我有这些数据:
2010-11-14,汤姆
2010-11-15,汤姆
2010-11-15,迪克
2010-11-15,汤姆
2010-11-20,Harry
我希望使用一个视图(可能还原函数)在2010-11-14和2010-11-16之间返回分组名称,例如
汤姆3
迪克1
怎么会这样呢 实现?
答案 0 :(得分:0)
我建议使用以下文档结构,以及map和reduce函数:
{ 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 }