我有许多账户,每个账户都有一个被指定的员工。我想找到每个员工的账户数量。我如何使用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'
},
});