如何在mongoose.js查询中做数学

时间:2015-08-16 21:12:00

标签: javascript node.js mongodb

我有多行,我希望将这些数据作为联赛表返回并作为足球联赛表进行排序。

每个游戏的数据分为多行:

{
    "_id" : ObjectId("55d0f8a6bd0782b480dc4941"),
    "venue" : "h",
    "game_id" : ObjectId("55d0f8a6bd0782b480dc48f9"),
    "date" : ISODate("2015-04-25T14:00:00.000Z"),
    "gd" : 0,
    "ga" : 1,
    "gf" : 1,
    "points" : 1,
    "team_id" : ObjectId("55d0f8a6bd0782b480dc48f1"),
    "__v" : 0
}

我看不到在查询中做数学的方法,并返回给定team_id的所有点的计算值。

Math中的Mongoose组中是否有mySQL

1 个答案:

答案 0 :(得分:1)

是的,你可以使用http://mongoosejs.com/docs/api.html#aggregate_Aggregate-group和$ sum http://docs.mongodb.org/manual/reference/operator/aggregation/sum/来获得每个团队的积分总和

 your-model-name.aggregate([
    {
        $group: {
            _id: '$team_id',  
            total: {$sum: "$points"}
        }
    }
], function (err, result) {
    if (err) {
        // an error ....
    } else {
        // your result
    }
});