Подтвердить что ты не робот

Как хранить метки времени? Автоматически создаются и обновляются поля?

Каков наилучший способ хранения временных меток в MongoDB?

  • Какой формат лучше всего:

    # "created": { "d" : "2010-03-29", "t" : "20:15:34" }
    # "created": "12343545234" # seconds since epoc
    # "created": "2010-03-14T21:20:14+0000"
    
  • Есть ли способ, чтобы MongoDB автоматически устанавливал поля created и updated?

4b9b3361

Ответ 1

Какой формат лучше всего

Лучший для чего?

Есть ли способ, чтобы MongoDB автоматически установил созданные и обновленные поля?

Созданное время находится в ObjectId, но, насколько я знаю, вам придется обновить поле updated вручную.

Пример:

ObjectId("538141a9615760fd04ffef5f").getTimestamp()

Ответ 2

  • Предпочтительным является формат, необходимый для его обработки с наилучшей производительностью в приложении. Обратите внимание, что по умолчанию каждый документ в MongoDB получает созданную временную метку (http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-DocumentTimestamps)

  • См. 1) + Я думаю, вам нужно вручную установить поле "Обновить".

Ответ 3

Если вы выполните следующие действия в оболочке mongo, вы увидите отметку времени, которая отображается, когда эти документы вставлены с помощью mongoId. Напр. ObjectId("51f3dee5ee49f9b91e0db133").getTimestamp(), то он возвращает ISODate.

Ответ 4

В 1.8 и выше у Mongo есть способ создать 64-битные значения метки времени, которые гарантированы уникальными на одном сервере. Но они не обновляются автоматически. http://www.mongodb.org/display/DOCS/Timestamp+data+type