【发布时间】:2015-03-04 11:04:12
【问题描述】:
我有很多帐户,每个帐户都分配了一名员工。我想找到每个员工的帐户数。我如何使用 mongoose(mongodb) 的聚合来完成这项任务。我熟悉mongoose的其他功能,可以用下面的代码实现
exports.accountsOfEachEmployee = function(req, res) {
Account.find({active:true}).exec(function(err, accounts){
if (err || !accounts) res.status(400).send({
message: 'could not retrieve accounts from database'
});
var accountsOfEachEmployee = {};
for (var i = 0; i < accounts.length; i++) {
if(accountsOfEachEmployee[order[i].employee]) {
accountsOfEachEmployee[order[i].employee] = 1;
} else {
accountsOfEachEmployee[order[i].employee]++;
}
}
res.json(accountsOfEachEmployee);
});
};
使用聚合更快吗?分组和聚合如何在 mongoose(mongodb) 中工作。以下是我的帐户架构
var AccountSchema = new Schema({
active: {
type : Boolean,
default: false
},
employee: {
type: Schema.ObjectId,
ref: 'Employee'
},
});
【问题讨论】: