我有一个存储在 mongo 中的用户群。用户可以记录他们的出生日期。我需要运行一个按年龄聚合用户的报告。
我现在有一个按出生年份对用户进行分组的管道。但是,这还不够精确,因为大多数人不是在 1 月 1 日出生的;因此,即使他们出生于 1970 年,也可能还不到 43 岁。
db.Users.aggregate([
{ $match : { "DateOfBirth" : { $exists : true} } },
{ $project : {"YearOfBirth" : {$year : "$DateOfBirth"} } },
{ $group : { _id : "$YearOfBirth", Total : { $sum : 1} } },
{ $sort : { "Total" : -1 } }
])
你知道是否可以在聚合框架内执行某种算术来准确计算用户的年龄?还是仅使用 MapReduce 可以做到这一点?