Mongoose 中字段的每个不同值的行数
Posted
技术标签:
【中文标题】Mongoose 中字段的每个不同值的行数【英文标题】:Row count per each distinct value of the field in Mongoose 【发布时间】: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 似乎相关的问题,但它解决了一个不同的问题,鉴于上述情况并没有帮助。
【问题讨论】:
【参考方案1】:您需要聚合框架的$group 运算符:
MyModel.aggregate([
$match: userName: 'myUser'
,
$group:
_id: "$reactionType",
count: $sum: 1
])
【讨论】:
以上是关于Mongoose 中字段的每个不同值的行数的主要内容,如果未能解决你的问题,请参考以下文章