我有一个简单的数据库布局,如下所示:
client
id
sex (male/female)
birthday (date)
client
id
sex (male/female)
birthday (date)
(...)
我正在尝试编写一个聚合命令来输出我有多少男性和女性客户,我还想输出男性和女性的平均年龄,不确定我可以在同一个命令中执行此操作还是我需要2个单独的吗?
// Count of males/females, average age
Clients.aggregate({
$project : {"sex" : 1,
"sexCount" : 1,
"birthday" : 1,
"avgAge" : 1
}
},
{
$match: {"sex": {$exists: true}}
},
{
$group: {
_id : "$sex",
sexCount : { $sum: 1 },
avgAge : { $avg: "$birthday" },
}
},
{ $sort: { _id: 1 } }
, function(err, sex_dbres) {
if (err)
throw err;
else{
(...)
}
});
使用上面的代码,我得到了男性/女性的数量,但 avgAge 为 0。有什么想法吗?
非常感谢