【问题标题】:Row count per each distinct value of the field in MongooseMongoose 中字段的每个不同值的行数
【发布时间】:2020-07-25 13:42:15
【问题描述】:

我有一个类似{ reactionType: String, userName: String } 的架构(非常简化),我想计算给定用户对每种类型的反应有多少。如何使用 Mongodb 和 Mongoose 做到这一点?

我试过了

MyModel.find({ userName: 'myUser' }).distinct('reactionType').count()

以及它的变体,但这似乎计算给定用户的反应类型,而不是用户的每个反应类型的计数。

如果这有助于澄清我想要什么,在 SQL 中我会做类似的事情

SELECT ReactionType, COUNT(1) FROM TheTable
WHERE UserName = 'myUser'
GROUP BY ReactionType

但是如何将它翻译成猫鼬语呢?

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

【问题讨论】:

    标签: javascript node.js mongodb mongoose nosql


    【解决方案1】:

    您需要聚合框架的$group 运算符:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 2020-12-29
      • 1970-01-01
      • 2018-07-11
      • 2021-11-15
      • 1970-01-01
      相关资源
      最近更新 更多