MongoDB统计各歌曲出现次数的聚合管道如何编写
MongoDB 歌曲出现次数统计聚合管道写法
你可以直接使用以下聚合管道实现需求:
db.yourCollectionName.aggregate([ // 按歌曲名分组统计出现次数 { $group: { _id: "$song", count: { $sum: 1 } } }, // 调整输出格式,匹配你需要的歌曲名作为键、次数作为值的结构 { $replaceRoot: { newRoot: { $arrayToObject: [[{ k: "$_id", v: "$count" }]] } } } ])
注意事项
- 请将代码中的
yourCollectionName替换为你实际使用的集合名称 - 如果你不需要严格匹配指定的键值对输出,仅需要拿到统计结果,可以去掉
$replaceRoot阶段,得到的结果会包含_id(存储歌曲名)和count(存储出现次数)两个字段,更适合后续程序逻辑处理 - 如果你认为歌名相同但歌手不同属于不同的独立歌曲,只需将
$group阶段的_id修改为{ song: "$song", artist: "$artist" }即可 - 执行上述完整管道后,输出结果和你期望的格式完全一致:
{ "BIBLICAL" : 1 } { "WILL YOU STILL LOVE ME?" : 1 } { "SHY GUY" : 1 }
内容的提问来源于stack exchange,提问作者kenif
相关产品推荐
相关产品推荐

