Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

$dateToParts (operador de expresión)

$dateToParts

Devuelve un documento que contiene las partes constituyentes de un valor BSON de fecha dado como propiedades individuales. Las propiedades devueltas son year, month, day, hour, minute, second y millisecond.

Puedes configurar la propiedad iso8601 en true para devolver las partes que representan una fecha de semana ISO en su lugar. Esta solicitud devolverá un documento en el que las propiedades son isoWeekYear, isoWeek, isoDayOfWeek, hour, minute, second y millisecond.

La expresión $dateToParts tiene la siguiente sintaxis:

{
$dateToParts: {
'date' : <dateExpression>,
'timezone' : <timezone>,
'iso8601' : <boolean>
}
}

El $dateToParts procesa un documento con los siguientes campos:

Campo
Obligatorio/Opcional
Descripción

date

Requerido

La fecha de ingreso para la que se deben devolver partes. <dateExpression> puede ser cualquier expresión que se resuelva en una fecha, un timestamp o un ObjectID. Para obtener más información sobre expresiones, consulta Expresiones.

timezone

Opcional

La zona horaria que se usará para formatear la fecha. Por defecto, $dateToParts utiliza UTC.

<timezone> puede ser cualquier expresión que se evalúe a una string cuyo valor sea uno de los siguientes:

  • un Identificador de zona horaria Olson, como "Europe/London" o "America/New_York", o

  • un desplazamiento UTC en la forma:

    • +/-[hh]:[mm]por ejemplo, "+04:45", o

    • +/-[hh][mm]por ejemplo, "-0530", o

    • +/-[hh], e.g. "+03".

Para obtener más información sobre las expresiones, consulta Expresiones.

iso8601

Opcional

Si se configura en true, modifica el documento de salida para usar campos de fecha en semanas ISO. Por defecto es false.

Cuando use un identificador de zona horaria Olson en el campo <timezone>, MongoDB aplica el ajuste de DST si corresponde para la zona horaria especificada.

Por ejemplo, considera una colección sales con el siguiente documento:

db.sales.insertOne(
{
"_id" : 1,
"item" : "abc",
"price" : 10,
"quantity" : 2,
"date" : ISODate("2014-01-01T08:15:39.736Z")
}
)

La siguiente agregación ilustra cómo MongoDB gestiona el ajuste de DST para el identificador de zona horaria Olson. El ejemplo usa los operadores $hour y $minute para devolver las partes correspondientes del campo date:

db.sales.aggregate([
{
$project: {
"nycHour": {
$hour: { date: "$date", timezone: "-05:00" }
},
"nycMinute": {
$minute: { date: "$date", timezone: "-05:00" }
},
"gmtHour": {
$hour: { date: "$date", timezone: "GMT" }
},
"gmtMinute": {
$minute: { date: "$date", timezone: "GMT" } },
"nycOlsonHour": {
$hour: { date: "$date", timezone: "America/New_York" }
},
"nycOlsonMinute": {
$minute: { date: "$date", timezone: "America/New_York" }
}
}
}])

La operación devuelve el siguiente resultado:

{
"_id": 1,
"nycHour" : 5,
"nycMinute" : 24,
"gmtHour" : 10,
"gmtMinute" : 24,
"nycOlsonHour" : 6,
"nycOlsonMinute" : 24
}

Considere una colección sales con el siguiente documento:

{
"_id" : 2,
"item" : "abc",
"price" : 10,
"quantity" : 2,
"date" : ISODate("2017-01-01T01:29:09.123Z")
}

La siguiente agregación utiliza $dateToParts para devolver un documento que contiene las partes constituyentes del campo date.

db.sales.aggregate([
{
$project: {
date: {
$dateToParts: { date: "$date" }
},
date_iso: {
$dateToParts: { date: "$date", iso8601: true }
},
date_timezone: {
$dateToParts: { date: "$date", timezone: "America/New_York" }
}
}
}])

La operación devuelve el siguiente resultado:

{
"_id" : 2,
"date" : {
"year" : 2017,
"month" : 1,
"day" : 1,
"hour" : 1,
"minute" : 29,
"second" : 9,
"millisecond" : 123
},
"date_iso" : {
"isoWeekYear" : 2016,
"isoWeek" : 52,
"isoDayOfWeek" : 7,
"hour" : 1,
"minute" : 29,
"second" : 9,
"millisecond" : 123
},
"date_timezone" : {
"year" : 2016,
"month" : 12,
"day" : 31,
"hour" : 20,
"minute" : 29,
"second" : 9,
"millisecond" : 123
}
}