couchdb用复杂的密钥减少

假设我们在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,{}]但这会返回每个国家/地区的综合浏览量,这比我需要的信息更多. (只是给定时期内每个国家/地区的综合浏览量).

最佳答案 只是敦促发射国家

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

减少功能

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