首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >couchdb map-reduce和分组

couchdb map-reduce和分组
EN

Stack Overflow用户
提问于 2011-08-31 02:23:56
回答 2查看 4.6K关注 0票数 3

我正在尝试获取对象(比方说视频)的独特事件的计数:

以下是我的文档:

代码语言:javascript
复制
{
  "type":"View",
  "video_id": "12300",
  "user_id": 3
}

{
  "type":"View",
  "video_id": "12300",
  "user_id": 1
}
{
  "type":"View",
  "video_id": "45600",
  "user_id": 3
}

我正在尝试获取每个视频的唯一(通过user_id)点击量

我假设我想像这样映射我的数据:

代码语言:javascript
复制
function(doc) {
        if (doc.type === 'View') {
           emit([doc.video_id, doc.user_id], 1);
        }
    },

但我不明白如何将其减少到每个视频的唯一用户,或者我错了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-31 04:34:21

您应该查看group_level视图参数。它将允许您更改在哪些字段上进行分组。

通过使用group_level = 1,在本例中它将按video_id分组。使用group_level = 2,它将在video_id user_id上进行分组。

票数 6
EN

Stack Overflow用户

发布于 2011-08-31 02:51:20

在请求URL后添加?group=true。将相同的关键点组合在一起作为reduce函数的输入:

代码语言:javascript
复制
function(keys, values, rereduce){
  return sum(values);
}

这应该就行了。

请注意,键和值是键及其值的解压缩列表。对于reduce的每次调用,键上的分组都是相同的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7247914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档