如何使用mongoose中的聚合,匹配和组来计算总和

时间:2017-01-31 11:31:12

标签: node.js mongoose

我有这个模型,我想通过选择status和eventId来计算金额的总和。

我使用 $ aggregate $ match $ group

模型

var moneySchema = new mongoose.Schema({
    Id:Number,
    Amount: {type: Float},
    Status: Number,
    EventId: Number
}, {
    timestamps: true
}, {
    collection: 'e_money'
});

moneySchema.plugin(autoIncrement.plugin, 'e_money');
module.exports = mongoose.model('e_money', moneySchema);

功能

getTotalAmount: function (id,callback) {
    var model = require("./Schema/e_money");
    model
        .aggregate([{
            $match: {
                Status: 1,EventId:id
            }
        }, {
            $group:{
                _id: null,
                sum: {
                    $sum: "$Amount"
                }
            }
        }])
        .exec(function (err, doc) {
            if (err) {
                callback(err);
            } else {
                callback(doc);
            }
        })
};

但我的函数返回一个空数组。有没有解决方案?

0 个答案:

没有答案