Date()Devuelve una fecha como una cadena o como un Objeto de fecha. La fecha puede contener una fecha y una hora, conocidas como fecha y hora.
Compatibilidad
Puedes usar Date() para implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
Puede especificar cualquiera de los siguientes formatos:
Date()devuelve la fecha actual como un string enmongosh.new Date()devuelve la fecha actual como un objeto Date.mongoshenvuelve el objeto Date con el asistenteISODate. ElISODateestá en UTC.
Puede especificar una fecha concreta pasando una fecha string ISO-8601 con un año dentro del rango inclusivo de 0 a 9999 al constructor new Date() o a la función ISODate(). Estas funciones aceptan los siguientes formatos:
new Date("<YYYY-mm-dd>")devuelve elISODatecon la fecha especificada.new Date("<YYYY-mm-ddTHH:MM:ss.sss>")especifica la fecha y hora en la zona horaria local del cliente y devuelve elISODatecon la fecha y hora especificada en UTC.ss.sssespecifica segundos (ss) y milisegundos (.sss). Los milisegundos se establecen en0si se omiten.new Date("<YYYY-mm-ddTHH:MM:ss.sssZ>")especifica la fecha y hora en UTC, y devuelve elISODatecon la fecha y hora especificada en UTC.ss.sssespecifica segundos (ss) y milisegundos (.sss). Los milisegundos se establecen en0si se omiten.new Date(<integer>)especifica la fecha y hora como milisegundos desde la UNIX epoch (1 de enero de 1970), y devuelve la instancia resultante deISODate.
Comportamiento
Internamente, los objetos de fecha se almacenan como un entero de 64 bits con signo que representa el número de milisegundos desde la Unix epoch (1 de enero de 1970).
No todas las operaciones de base de datos y los controladores admiten el rango completo de 64 bits. Puedes trabajar de forma segura con fechas cuyos años estén dentro del rango inclusivo de 0 a 9999.
Ejemplos
Utilizar la fecha en una query
Si no existe ningún documento con _id igual a 1 en la colección products, la siguiente operación inserta un documento con el campo dateAdded establecido en la fecha actual:
db.products.updateOne( { _id: 1 }, { $set: { item: "apple" }, $setOnInsert: { dateAdded: new Date() } }, { upsert: true } )
Tip
Uso de la variable de agregación NOW para la actualización con el pipeline de agregación
Fecha de devolución como string
Para devolver la fecha como una cadena, utiliza el método Date(). Por ejemplo:
var myDateString = Date();
Fecha de retorno como Date objeto
mongosh envuelve objetos de tipo date con el asistente ISODate. Sin embargo, los objetos son de tipo date.
El siguiente ejemplo utiliza new Date() para devolver un objeto fecha con el datetime UTC especificado:
var myDate = new Date("2016-05-18T16:00:00Z");
Insertar y ISODate devolver objetos
Puedes especificar fechas como objetos de tipo ISODate.
El siguiente ejemplo crea una colección cakeSales con ISODate objetos en el campo orderDate:
db.cakeSales.insertMany( [ { _id: 0, type: "chocolate", orderDate: new ISODate("2020-05-18T14:10:30.123Z") }, { _id: 1, type: "strawberry", orderDate: new ISODate("2021-03-20T11:30:05Z") }, { _id: 2, type: "vanilla", orderDate: new ISODate("2021-01-15T06:31:15.456Z") } ] )
El siguiente ejemplo devuelve documentos donde orderDate es menor que la ISODate especificada en el operador $lt:
db.cakeSales.find( { orderDate: { $lt: ISODate("2021-02-25T10:03:46.234Z") } } )
Ejemplo de salida:
[ { _id: 0, type: 'chocolate', orderDate: ISODate("2020-05-18T14:10:30.123Z") }, { _id: 2, type: 'vanilla', orderDate: ISODate("2021-01-15T06:31:15.456Z") } ]