Лучший способ хранения даты/времени в mongodb

Я видел использование строк, целых временных меток и объектов dontetime mongo.

Ответ 1

Лучший способ - сохранить собственный JavaScript Объекты Date, которые отображаются на Собственные объекты даты BSON.

> 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 измеряется в секундах. Объект Date JavaScript измеряется в миллисекундах с эпохи Unix.

Ответ 2

Одна дататепа уже находится в объекте _id, представляющем время вставки

Итак, если время вставки - это то, что вам нужно, оно уже есть:

Вход в оболочку mongodb

[email protected]:~$ mongo 10.0.1.223
MongoDB shell version: 2.4.9
connecting to: 10.0.1.223/test

Создайте свою базу данных, вставив элементы

> db.penguins.insert({"penguin": "skipper"})
> db.penguins.insert({"penguin": "kowalski"})
> 

Позволяет сделать эту базу данных той, на которой мы сейчас находимся

> use penguins
switched to db penguins

Верните строки:

> db.penguins.find()
{ "_id" : ObjectId("5498da1bf83a61f58ef6c6d5"), "penguin" : "skipper" }
{ "_id" : ObjectId("5498da28f83a61f58ef6c6d6"), "penguin" : "kowalski" }

Получить каждую строку в yyyy-MM-dd HH: mm: ss format:

> db.penguins.find().forEach(function (doc){ d = doc._id.getTimestamp(); print(d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate() + " " + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds()) })
2014-12-23 3:4:41
2014-12-23 3:4:53

Если этот последний лайнер вас смущает, у меня есть пошаговое руководство о том, как это работает здесь: fooobar.com/info/45215/...

Protip, MongoDB - лучшая БД, потому что MongoDB - это веб-масштаб: https://www.youtube.com/watch?v=b2F-DItXtZs