为用户创建“团队”子集合

时间:2015-05-21 12:21:12

标签: node.js mongodb express mongoose

假设有一个用户集合。 该集合中该问题的相关信息是:

  • 用户名:字符串,
  • teamid:数字,
  • totalscore:数字

现在,对于最终输出,它应列出团队,使用teamid列出团队下的用户,并将每个用户的总核数加起来计算团队分数。

然而,我无法想出任何办法。 我正在考虑聚合这个,但是,它有点远远超过我的帽子。

此api的输出使用express和mongoose在json中呈现。

1 个答案:

答案 0 :(得分:1)

您可以使用以下聚合查询。 使用group阶段和$push获取播放器的名称,$sum获取团队totalscore的总和。

db.coll.aggregate([
    {'$group': {
        '_id': '$teamid',
        'totalscore': {'$sum': '$totalscore'},
        'listofplayers': {'$push':'$username'}
    }
}])