He visto el uso de cadenas, marcas de tiempo enteras y objetos mongo datetime.
177
La mejor manera es almacenar objetos de fecha JavaScript nativos , que se asignan a objetos de fecha nativos 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") }
El tipo nativo admite una amplia gama de métodos útiles. para usar, que puede usar en sus trabajos de reducción de mapas, por ejemplo.
Si lo necesita, puede convertir fácilmente Date
objetos hacia y desde las marcas de tiempo Unix 1) , utilizando el getTime()
método y el Date(milliseconds)
constructor, respectivamente.
1) Hablando estrictamente, la marca de tiempo Unix se mide en segundos . El objeto Fecha de JavaScript se mide en milisegundos desde la época de Unix.
389
y240
son los milisegundos de la marca de tiempo. El formatoZ
en cadena le dice a MongoDB que la marca de tiempo que proporcionó está en UTC. Si luego lo vuelve a leer, su aplicación probablemente lo convierta a su zona horaria local , haciendo que parezca que la hora ha cambiado. Pero el tiempo sigue siendo el mismo, solo se interpreta desde una perspectiva de zona horaria diferente. Por ejemplo12:50:42Z
y13:50:42+01:00
representan el mismo momento en el tiempo.21:56:03+01:00
ahora está en CET e insertanew Date()
, MongoDB podría representarlo como20:56:03Z
. Pero cuando lo lea de nuevo y lo muestre en su aplicación utilizando la configuración de zona horaria local (CET), volverá a leer21:56:03
.Ya hay un sello de fecha en el objeto _id, que representa la hora de inserción
Entonces, si el tiempo de inserción es lo que necesita, ya está allí:
Inicie sesión en mongodb shell
Crea tu base de datos insertando elementos
Hagamos de esa base de datos la que estamos ahora
Recupere las filas:
Obtenga cada fila en aaaa-MM-dd HH: mm: formato ss:
Si esa última frase te confunde, tengo un tutorial sobre cómo funciona eso aquí: https://stackoverflow.com/a/27613766/445131
fuente
_id
?_id.getTimestamp()
.