我们将在MongoDb中保存每场比赛的球员统计信息。
{idPlayer: 27, idTeam: 6, matchId: 1, score: 90},
{idPlayer:38, idTeam: 9, matchId:1, score: 6},
{idPlayer:5, idTeam:8, matchId:2, score: 20}
我们想知道一个团队参加了多少场比赛: 我们希望结果为:
{idTeam, sumMatches}
{idTeam: 8, sumMatches: 6}
{idTeam: 9, sumMatches: 4}
我们正在尝试进行汇总,但是没有得到这个结果。
有什么主意要解决这个问题吗?
答案 0 :(得分:1)
这应该做到:
db.collection.aggregate([
{
$group: {
_id: "$idTeam",
matches: {
$addToSet: "$matchId"
}
}
},
{
$project: {
_id: 0,
idTeam: "$_id",
sumMatches: {
$size: "$matches"
}
}
}
])