datetime - now - restar fechas mongodb
La mejor manera de almacenar fecha/hora en mongodb (2)
Una marca de fecha ya está en el objeto _id, lo que representa el tiempo de inserción
Entonces, si el tiempo de inserción es lo que necesita, ya está allí:
Iniciar sesión en mongodb shell
ubuntu@ip-10-0-1-223:~$ mongo 10.0.1.223
MongoDB shell version: 2.4.9
connecting to: 10.0.1.223/test
Crea tu base de datos insertando elementos
> db.penguins.insert({"penguin": "skipper"})
> db.penguins.insert({"penguin": "kowalski"})
>
Hagamos de esa base de datos en la que estamos ahora
> use penguins
switched to db penguins
Recupera las filas:
> db.penguins.find()
{ "_id" : ObjectId("5498da1bf83a61f58ef6c6d5"), "penguin" : "skipper" }
{ "_id" : ObjectId("5498da28f83a61f58ef6c6d6"), "penguin" : "kowalski" }
Obtenga cada fila en formato aaaa-MM-dd HH: mm: ss:
> 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
Si ese último one-liner te confunde, tengo un tutorial sobre cómo funciona esto aquí: https://stackoverflow.com/a/27613766/445131
Protip, MongoDB es la mejor base de datos porque MongoDB es a escala web: https://www.youtube.com/watch?v=b2F-DItXtZs
He visto usar cadenas, marcas de tiempo enteras y objetos mongo datetime.
La mejor forma es almacenar objetos JavaScript Fecha nativos, que se asignan a objetos 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 toda una gama de métodos útiles listos para usar, que puede usar en su trabajo de reducción de mapas, por ejemplo.
Si es necesario, puede convertir fácilmente objetos de Date
ay desde las marcas de tiempo de Unix 1) , utilizando el método getTime()
y el constructor de Date(milliseconds)
, respectivamente.
1) Estrictamente hablando, la marca de tiempo de Unix se mide en segundos . El objeto Fecha de JavaScript se mide en milisegundos desde la época de Unix.