【发布时间】:2016-02-20 02:41:24
【问题描述】:
我有 2 个 Mongoose 集合:ExpenseCategory 和 Expense
var ExpenseCategorySchema = new Schema({
name: String,
totalSpentInThisMonth: Number
});
mongoose.model('ExpenseCategory', ExpenseCategorySchema);
var ExpenseSchema = new Schema({
expenseCategoryId: {type: Schema.Types.ObjectId, ref: 'ExpenseCategory'},
amount: Number,
date: Date
});
mongoose.model('Expense', ExpenseSchema);
有一个用 Node.js 编写的 GET api 调用来返回所有 ExpenseCategory items。
appRouter.route('/expensecatgories')
.get(function(req, res){
ExpenseCategory.find({}, function (expenseCategories) {
res.json(expenseCategories);
});
});
在上面的GET method 中,我想在返回之前在每个expenseCategories 项目中填充字段totalSpentInThisMonth。该字段需要计算为所有expense.amount 的总和,其中expense.expenseCategoryId 匹配expenseCategory.id 和expense.date 在当前月份。
如何在返回expenseCategories 之前填充字段totalSpentInThisMonth?
【问题讨论】: