我一直在尝试使用聚合函数按年份对日期字段进行分组:
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
}
我不太确定涉及索引等技术会有多繁忙。
欢迎任何建议!