Создайте DateTime в функции Map MongoDb - PullRequest
0 голосов
/ 07 февраля 2011

Моя функция карты выглядит так:

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)", ...}

Мне нужно, чтобы "день" в коллекции результатов также сохранялся как тип даты, но он хранится в виде длинных (тики эпохи), например:

{ "_id" : { "day" : 1265414400000, "store_id" : 10}, "value" : { "count" : 7 } }

Я пытался изменить emit на что-то вроде этого, но это не помогло:

emit({day : {"$date" : day},...)

Есть идеи, как это сделать?

1 Ответ

1 голос
/ 07 февраля 2011

Date.utc вернет миллисекунды с эпохи. Поэтому, когда вы помещаете свои данные обратно в БД, вы можете использовать, например:

 new Date(dateAsLong)

, и он будет сохранен в формате даты BSON.

раньше, чем Монго 1.7, он будет отображаться в вашем хэше как:

 "Mon Mar 01 2010 11:58:09 GMT+0000 (BST)"

1,7 + будет выглядеть как:

 ISODate("2010-03-01T11:58:09Z")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...