En MongoDB, la Date()
El método devuelve una fecha como una cadena o como un objeto Fecha.
- Cuando lo llamas como
Date()
, devuelve la fecha actual como una cadena enmongo
concha. - Cuando lo llamas como
new Date()
, devuelve la fecha actual como un objeto Date.
También puede proporcionar una fecha específica como argumento para new Date()
, para que use esa fecha.
Ejemplo:Date()
Aquí hay un ejemplo de cómo insertar un documento en una colección y usar Date()
como el valor de uno de los campos:
db.dogs.insert(
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : Date()
}
)
Después de ejecutar ese código, podemos echar un vistazo al documento resultante:
db.dogs.find().pretty()
Resultado:
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)" }
Podemos ver que el lastModified
el campo de fecha usa una cadena de fecha como su valor.
Ejemplo:new Date()
Como se mencionó, si desea devolver un objeto de fecha en lugar de una cadena de fecha, use new Date()
.
Ejemplo:
db.dogs.insert(
{
"_id" : 2,
"name" : "Wag",
"lastModified" : new Date()
}
)
Simplemente anteponiendo Date()
con new
da como resultado un objeto de fecha en lugar de una cadena de fecha.
Ahora revisemos la colección de documentos nuevamente:
db.dogs.find().pretty()
Resultado:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}
{
"_id" : 2,
"name" : "Wag",
"lastModified" : ISODate("2021-01-27T00:19:08.862Z")
}
Podemos ver que la fecha en el segundo documento se ha ajustado con ISODate()
ayudante. La fecha ISO está en UTC.
Proporcione una fecha específica
Puede proporcionar su propia fecha al llamar al Date()
método.
Para hacer esto, pase una cadena de fecha ISO-8601 con un año dentro del rango inclusivo 0
a través de 9999
a la new Date()
constructor o ISODate()
función.
He aquí un ejemplo.
db.dogs.update(
{ "_id" : 1 },
{ $set : { "born" : new Date( "2020-10-07" ) } }
)
Ahora revisemos el documento:
db.dogs.find( { "_id": 1 } ).pretty()
Resultado:
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)", "born" : ISODate("2020-10-07T00:00:00Z") }
Podemos ver que se ha agregado el campo nacido y se ha establecido en la fecha proporcionada.
Puede proporcionar la fecha en los siguientes formatos.
Formato | Descripción |
---|---|
YYYY-mm-dd | Devuelve el ISODate con la fecha especificada. |
YYYY-mm-ddTHH:MM:ss | Especifica la fecha y hora en la zona horaria local del cliente y devuelve el ISODate con la fecha y hora especificada en UTC. |
YYYY-mm-ddTHH:MM:ssZ | Especifica la fecha y hora en UTC y devuelve el ISODate con la fecha y hora especificada en UTC. |
Entero | También puede proporcionar un número entero como valor. Cuando hace esto, especifica la fecha y hora en milisegundos desde la época de Unix (1 de enero de 1970) y devuelve el ISODate resultante. instancia. |
Época Unix
Aquí hay un ejemplo de cómo especificar un número entero como argumento para new Date()
.
Al hacer esto, se especifica la fecha y hora en milisegundos desde la época de Unix (1 de enero de 1970) y se devuelve el ISODate
resultante. instancia.
db.dogs.update(
{ "_id" : 2 },
{ $set : { "born" : new Date( 1601207768012 ) } }
)
Ahora revisemos el documento:
db.dogs.find( { "_id": 2 } ).pretty()
Resultado:
{ "_id" : 2, "name" : "Wag", "lastModified" : ISODate("2021-01-27T00:19:08.862Z"), "born" : ISODate("2020-09-27T11:56:08.012Z") }