私はmongoにユーザーベースを格納しています。ユーザーに生年月日が記録されます。 ユーザーを集計するレポートを年齢:まで実行する必要があります。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でのみ可能ですか?
私があれば、 '、$のsubtract'演算子は、あなたのタスクに適しているが、残念ながらそれは現在の安定版:) – user20140268
まあで' Dates'をサポートしていないと思います日付はミリ秒単位で格納されますが、解決方法はミリ秒単位で(long型として)差し引かれ、日付形式に変換されます。 – user