【发布时间】:2015-05-15 03:49:37
【问题描述】:
我在 MongoDB 中有以下数据:
[{id:3132, home:'NSH', away:'BOS'}, {id:3112, home:'ANA', away:'CGY'}, {id:3232, home:'MIN', away:'NSH'}]
是否可以通过聚合管道获得每个团队的总游戏数?
想要的结果:
[{team: 'NSH', totalGames: 2}, {team:'MIN', totalGames: 1}, ...}]
我可以通过两个聚合调用将每个单独放在自己的数组中:
[{$group: {_id: "$home", gamesLeft: {$sum: 1}}}]
和
[{$group: {_id: "$away", gamesLeft: {$sum: 1}}}]
结果
var homeGames = [ { _id: 'NSH', totalGames: 1 }, { _id: 'SJS', totalGames: 2 }, ...]
var awayGames = [ { _id: 'NSH', totalGames: 1 }, { _id: 'SJS', totalGames: 4 }, ...]
但我真的想让它只处理一个查询。如果不可能,使用 javascript 将这两个结果合二为一的最佳方法是什么?
【问题讨论】:
标签: javascript node.js mongodb mongoose