couchdb用复杂的密钥减少

时间:2012-07-25 23:19:39

标签: couchdb mapreduce

假设我们在couchdb中有一些文档,比如这个

{ page: 'home', country: 'EN', timestamp: 15448 }
{ page: 'search', country: 'FR', timestamp: 15448 }
{ page: 'search', country: 'EN', timestamp: 15448 }
{ page: 'home', country: 'DE', timestamp: 15457 }

每个文档都代表一个具有给定时间戳的国家/地区的综合浏览量。我想要做的是查询这些文档,对于给定的页面和时间戳范围,获取该范围的每个国家/地区的综合浏览量。

我的目标是这个地图功能

function (doc) {
  emit([doc.page, doc.timestamp, doc.country], 1)
}

_sum作为reduce函数。

我可以用例如查询视图。 startkey=["home",15448]&endkey=["home", 15448, {}]但这会返回每个国家/地区的综合浏览量,这比我需要的信息更多。 (只是给定时期内每个国家/地区的综合浏览量)。

1 个答案:

答案 0 :(得分:2)

刚刚发射国家

function (doc)
{
  emit([doc.page, doc.timestamp], 1)
}

减少功能

function (keys, value)
{
  return sum(value);
}