我的地图功能如下所示:
map = function()
{
day = Date.UTC(this.TimeStamp.getFullYear(), this.TimeStamp.getMonth(), this.TimeStamp.getDate());
emit({day : day, store_id : this.Store_Id}, {count : 1});
}
TimeStamp作为日期存储在数据库中,如下所示:
{ "TimeStamp" : "Mon Mar 01 2010 11:58:09 GMT+0000 (BST)", ...}
我需要将结果集合中的“day”存储为日期类型,但它存储的时间长(Epoch ticks)如下:
{ "_id" : { "day" : 1265414400000, "store_id" : 10}, "value" : { "count" : 7 } }
我尝试将发射器更改为类似的但没有帮助:
emit({day : {"$date" : day},...)
关于如何做到这一点的任何想法?
答案 0 :(得分:1)
Date.utc将从纪元返回毫秒。因此,当您将数据放回数据库时,您可以使用例如:
new Date(dateAsLong)
并将其存储为BSON日期格式。
早于mongo 1.7它将在你的哈希中显示为:
"Mon Mar 01 2010 11:58:09 GMT+0000 (BST)"
1.7+它将显示为:
ISODate("2010-03-01T11:58:09Z")