Javascript Mongoose中每个字段不同值的行计数

Javascript Mongoose中每个字段不同值的行计数,javascript,node.js,mongodb,mongoose,nosql,Javascript,Node.js,Mongodb,Mongoose,Nosql,我有一个类似于{reactionType:String,userName:String}(非常简化)的模式,我想计算给定用户对每种类型的反应有多少。我如何处理Mongodb和Mongoose 我试过了 MyModel.find({userName:'myUser'}).distinct('reactionType').count() 和它的变化,但这似乎是计算给定用户的反应类型,而不是每个用户反应类型的计数 如果这有助于澄清我想要什么,在SQL中,我会这样做 从表格中选择反应类型、计数(1)

我有一个类似于
{reactionType:String,userName:String}
(非常简化)的模式,我想计算给定用户对每种类型的反应有多少。我如何处理Mongodb和Mongoose

我试过了

MyModel.find({userName:'myUser'}).distinct('reactionType').count()
和它的变化,但这似乎是计算给定用户的反应类型,而不是每个用户反应类型的计数

如果这有助于澄清我想要什么,在SQL中,我会这样做

从表格中选择反应类型、计数(1)
其中UserName='myUser'
按反应类型分组
但如何将其翻译成猫鼬语呢


我发现了一个似乎相关的问题,但它解决了一个不同的问题,鉴于上述情况,它没有帮助。

您需要聚合框架的操作符:

MyModel.aggregate([
    {
        $match: { userName: 'myUser' }
    },
    {
        $group: {
            _id: "$reactionType",
            count: { $sum: 1 }
        }
    }
])