ISODate () MongoDB и временная метка UNIX

Есть ли какие-то преимущества (производительность, индексы, размер и т. д.) в хранении дат в MongoDB как ISODate () по сравнению с хранением как обычная временная метка UNIX?

22
задан James Simpson 13 June 2011 в 16:01
поделиться

1 ответ

Встроенный в MongoDB тип Date очень похож на метку времени unix, хранящуюся в time_t. Единственное отличие состоит в том, что Dates - это 64-битное поле, хранящее миллисекунды с 1 января 1970 года, а не 32-битное поле, хранящее секунды с той же эпохи. Единственным недостатком является то, что для текущих выпусков он считает число без знака, поэтому он не может корректно обрабатывать даты до 1970 года. Это будет исправлено в MongoDB 2.0, выпуск которого запланирован примерно через месяц.

Возможной путаницей является название «ISODate». Это просто вспомогательная функция в оболочке, которая оборачивается вокруг ужасного конструктора Date в JavaScript. Если вы вызовете «ISODate ()» или «new Date ()», вы получите точно такой же объект Date, мы просто изменили способ его печати. Вы по-прежнему можете использовать обычные строки даты ISO или интервалы time_t без использования наших конструкторов, но вы не получите хороших объектов Date на выбранном вами языке.

20
ответ дан 29 November 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: