Каковы преимущества хранения даты в базе данных как ISODate по сравнению с простым текстом? - PullRequest
2 голосов
/ 05 ноября 2011

Почему я хочу хранить как ISODate, а не простой текст?

Ответы [ 2 ]

6 голосов
/ 05 ноября 2011

ISODate в MongoDB - это просто функция, которая обеспечивает дружественную оболочку для обычного конструктора JavaScript Date . Когда вы говорите это в MongoDB:

ISODate('2011-11-05T18:33:25Z')

Вы говорите то же самое, что и:

new Date(1320518005000);

но человек может прочитать дату ISO 8601 намного легче, чем он может прочитать количество миллисекунд с 1 января 1970 года.

Таким образом, использование ISODate дает вам реальный объект Date в базе данных, к которому вы можете вызывать методы (например, getMonth), и в то же время можете легко отслеживать его значение. Если вы использовали строку для даты, то вы будете анализировать строки все время, когда вам приходилось работать с датами. Примером может служить карта / уменьшение для агрегирования ежемесячных данных; Вы можете разобрать строки, чтобы извлечь месяц, но зачем беспокоиться, если вы можете использовать объект с реальной датой, который знает, какие месяцы?

0 голосов
/ 05 ноября 2011

Согласно этому источнику :

Доступно так много форматов, большинство из которых несовместимы с другими, что может оказаться кошмаром с точки зрения удобства использования при выборе представления даты, когдаписать для международной, межкультурной аудитории, как это происходит в Интернете.К счастью, есть одно решение в международном формате даты, разработанном ISO.

...