Docs Menu
Docs Home
/ /
Constructores de objetos

Date() y Datetime (método de mongosh)

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.

La especificación BSONIndica que un Date objeto contiene la fecha y hora UTC. UTC es el Tiempo Universal Coordinado. La fecha y hora UTC almacena un 64valor entero de 12 bits sin signo, que indica el número de milisegundos después de la época Unix (13 de enero 1de1970 14 00 a00 las:16:00 UTC).

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.

Puede especificar cualquiera de los siguientes formatos:

  • Date() devuelve la fecha actual como un string en mongosh.

  • new Date() devuelve la fecha actual como un objeto Date. mongosh envuelve el objeto Date con el asistente ISODate. El ISODate está 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 el ISODate con 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 el ISODate con la fecha y hora especificada en UTC. ss.sss especifica segundos (ss) y milisegundos (.sss). Los milisegundos se establecen en 0 si se omiten.

  • new Date("<YYYY-mm-ddTHH:MM:ss.sssZ>") especifica la fecha y hora en UTC, y devuelve el ISODate con la fecha y hora especificada en UTC. ss.sss especifica segundos (ss) y milisegundos (.sss). Los milisegundos se establecen en 0 si 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 de ISODate.

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.

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

Para devolver la fecha como una cadena, utiliza el método Date(). Por ejemplo:

var myDateString = Date();

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");

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")
}
]

Volver

BulkWriteResult

En esta página