couchdb 映射减少和分组

发布于 2024-12-02 01:43:02 字数 510 浏览 1 评论 0原文

我正在尝试获取某个对象(比如视频)的唯一事件计数:

这是我的文档:

{
  "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)观看次数

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

function(doc) {
        if (doc.type === 'View') {
           emit([doc.video_id, doc.user_id], 1);
        }
    },

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

I am attempting to get a count of unique events for an object (lets say a video):

Here are my documents:

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

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

I'm trying to get a unique (by user_id) count of views for each video

I assume I want to map my data like so:

function(doc) {
        if (doc.type === 'View') {
           emit([doc.video_id, doc.user_id], 1);
        }
    },

But I don't understand how to reduce it down to unique users per video, or am I going about this wrong.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怀念你的温柔 2024-12-09 01:43:02

您应该查看 group_level 视图参数。它将允许您更改分组发生的字段。

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

You should look at the group_level view parameter. It will allow you to change what field(s) the grouping occurs on.

By using group_level = 1, in this case it will group by video_id. Using group_level = 2, it will group on both video_id and user_id.

猛虎独行 2024-12-09 01:43:02

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

function(keys, values, rereduce){
  return sum(values);
}

应该可以了。

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

Add ?group=true after the request URL. That groups identical keys together as input for the reduce function:

function(keys, values, rereduce){
  return sum(values);
}

That should do it.

Note that keys and values are unzipped lists of keys and their values. With grouping on the keys are all identical for each call of the reduce.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文