Я видел использование строк, целочисленных временных меток и объектов времени и монго.
177
Лучший способ - хранить нативные объекты JavaScript Date , которые отображаются на BSON-нативные объекты Date .
> db.test.insert({date: ISODate()})
> db.test.insert({date: new Date()})
> db.test.find()
{ "_id" : ObjectId("..."), "date" : ISODate("2014-02-10T10:50:42.389Z") }
{ "_id" : ObjectId("..."), "date" : ISODate("2014-02-10T10:50:57.240Z") }
Собственный тип поддерживает целый ряд полезных методов из коробки, которые вы можете использовать, например, в заданиях на уменьшение карты.
Если вам нужно, вы можете легко конвертировать Date
объекты в метки времени Unix и из них 1) , используя getTime()
метод и Date(milliseconds)
конструктор соответственно.
1) Строго говоря, метка времени Unix измеряется в секундах . Объект JavaScript Date измеряется в миллисекундах с начала эпохи Unix.
389
и240
- это миллисекунды метки времени.Z
В формате строки говорит MongoDB , что метка времени Предоставленный в UTC. Если вы затем прочитаете его обратно, ваше приложение, вероятно, преобразует его в местный часовой пояс, создавая впечатление, что время изменилось. Но время все равно, оно интерпретируется только с другой точки зрения. Например12:50:42Z
и13:50:42+01:00
представлять один и тот же момент времени.21:56:03+01:00
прямо сейчас в CET и вы вставляетеnew Date()
, то MongoDB может представлять его как20:56:03Z
. Но когда вы прочитаете его обратно и отобразите в своем приложении, используя настройки локального часового пояса (CET), оно будет прочитано21:56:03
снова.Одна метка даты уже находится в объекте _id, представляющем время вставки
Так что, если время вставки - то, что вам нужно, оно уже там:
Войти в оболочку mongodb
Создайте свою базу данных, вставив элементы
Давайте сделаем эту базу данных той, на которой мы сейчас находимся
Верните строки:
Получить каждую строку в формате гггг-мм-дд чч: мм: сс:
Если вас смущает эта последняя строка, у меня есть пошаговое руководство о том, как это работает, здесь: https://stackoverflow.com/a/27613766/445131
источник
_id
?_id.getTimestamp()
.