2013-09-05 3 views
1

Я использую PHP как серверный язык. Я получаю дату в миллисекунде из моего запроса ajax и преобразовывал его в MongoDate, затем я хранил его в MongoDB. Как показано ниже.MongoDB - Хранить миллисекунду вместо даты

$date = new MongoDate($millisecond/1000); 
$db->test->insert({"date": $date}); 

Опять же, когда мне нужна дата в моей JavaScript, я получаю MongoDate и и превращается в миллисекунду и я передать его в моем UI. Как ниже

foreach($cursor as $row) { 
    $row["date"] = $row["date"]->sec * 1000; 
} 

Вместо этого, почему я не должен хранить дату как миллисекунду вместо Dateobject? Тем не менее, я могу сравнить две даты, даже если я храню ее как миллисекунду.

Любые другие недостатки, с которыми я столкнулся бы в будущем, пока я делаю отчеты с датой в миллисекундах?

+0

Агрегирующая структура в настоящее время работает только на поля даты – Sammaye

+0

Возможно, это помогает: вы можете извлечь дату/время (в том числе MS) из объекта MongoId. – DanFromGermany

+0

@Sammaye Привет, я хранил миллисекунду как номер. Не позволит ли mongodb число в агрегации? – user10

ответ

1

В настоящее время это единственное место, где я могу думать о том, где бы это было важно, если бы поле даты фактически хранилось, поскольку тип ISODate находится в рамках агрегации, однако я не сомневаюсь, что такое ограничение в конечном итоге изменится, когда кастинг станет возможным (это я хотел бы видеть).

Кроме того, ваше значение легко использовать как в PHP/любом другом языке, так и в Map Сокращает собственные конструкции даты. Имея это в виду, я не вижу проблем, если вам не нужны операторы дат фреймворка агрегирования.

+0

Что вы подразумеваете под MR? – user10

+0

@ user10 Map Уменьшить извините, привык к нему называется – Sammaye

+0

ahhhh. ОК. понял. – user10

Смежные вопросы