首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongodb聚合likert标度

Mongodb聚合likert标度
EN

Stack Overflow用户
提问于 2017-03-24 06:59:19
回答 1查看 260关注 0票数 0

这似乎是一个简单的问题,但我似乎无法弄清楚,在尝试了大量的时间。

我有一个mongodb集合,它有模式{user, documentID, rating}。收视率为1-5级,因此该集合可能如下所示:

代码语言:javascript
复制
userA, documentA, 5
userA, documentB, 5
userB, documentA, 1
userC, documentB, 2
(and so on...)

有没有一种方法可以直接找到的计数,每个分级上,一个文档,有一个查询?所需的输出类似于:

代码语言:javascript
复制
documentA:{
    "1": 23,
    "2": 24,
    "3": 131,
    "4": 242,
    "5": 500
}

我已经了解了如何使用aggregate对字段进行分组,但我不确定如何使用它返回distinct值的计数(即1-5)。

将非常感谢任何提供的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-24 07:55:50

您可以使用聚合来实现这一点。

查询看起来就像

代码语言:javascript
复制
db.collection.aggregate([
    { $group: 
        { _id: { document: "$document", rating: "$rating"}, 
          sum: {$sum: 1}
        }
    }
])

输出就像

代码语言:javascript
复制
{_id: {"document": "documentA", "rating": 1}, "sum": 1}
{_id: {"document": "documentA", "rating": 5}, "sum": 1}
{_id: {"document": "documentB", "rating": 2}, "sum": 1}
{_id: {"document": "documentB", "rating": 5}, "sum": 1}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42993290

复制
相关文章

相似问题

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