集計関数を使用して、日付フィールドを年ごとにグループ化しようとしています:
db.identities.aggregate([
{
$group : {
_id : { year : {$year : "$birth_date"}},
total : {$sum : 1}
}
}
])
ただし、私の日付の一部は 1970 年より前であり、Windows ユーザーであるため、gmtime に関する厄介なエラーが発生します。
{
"errmsg" : "exception: gmtime failed - your system doesn't support dates before 1970",
"code" : 16422,
"ok" : 0
}
明らかな答えは、仮想マシンを実行するか何かであることがわかっていますが、Windows(私の場合はWindows 7)の回避策があるかどうかに興味がありました。ネストされたオブジェクトとして日付を保存すると、どの程度のパフォーマンスヒットが発生するかがわからない場合は、次のようになります。
birth_date : {
year : 1980,
month : 12,
day : 9
}
インデックスなどでどれだけ多忙になるかはよくわかりません。
アドバイスをいただければ幸いです。