如何在couchdb中的日期和组结果之间返回值

时间:2010-11-26 16:45:56

标签: ruby-on-rails couchdb

我有问题在沙发数据库中分组日期范围结果。 说我有这些数据:

2010-11-14,汤姆

2010-11-15,汤姆

2010-11-15,迪克

2010-11-15,汤姆

2010-11-20,Harry

我希望使用一个视图(可能还原函数)在2010-11-14和2010-11-16之间返回分组名称,例如

汤姆3

迪克1

怎么会这样呢 实现?

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-142010-11-16进行完全缩减(无分组)。您将得到一个值:

{ 'Tom': 3, 'Dick': 1 }