我有这个模型,我想通过选择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);
}
})
};
但我的函数返回一个空数组。有没有解决方案?