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

$dateTrunc (operador de expresión)

$dateTrunc

Nuevo en la versión 5.0.

Trunca una fecha.

$dateTrunc sintaxis:

{
$dateTrunc: {
date: <Expression>,
unit: <Expression>,
binSize: <Expression>,
timezone: <tzExpression>,
startOfWeek: <Expression>
}
}
Campo
Requerido / Opcional
Descripción

Requerido

La fecha a truncar, especificada en UTC. La fecha puede ser cualquier expresión que se resuelva en una fecha, una marca de tiempo o un identificador de objeto.

Requerido

La unidad de tiempo, especificada como una expresión que debe resolverse en una de estas cadenas:

  • year

  • quarter

  • week

  • month

  • day

  • hour

  • minute

  • second

En conjunto, binSize y unit especifican el período de tiempo utilizado en el $dateTrunc cálculo.

Opcional

El valor numérico de tiempo, especificado como una expresión que debe resolverse en un número positivo distinto de cero. Por defecto es 1.

En conjunto, binSize y unit especifican el período de tiempo utilizado en el $dateTrunc cálculo.

Opcional

La zona horaria para el cálculo,$dateTrunc especificada como una expresión que debe resolverse en una cadena que contenga uno de estos valores:

Si no se proporciona una zona horaria, el cálculo se realiza en $dateTrunc UTC.

Formato
Ejemplos

Identificador de zona horaria Olson

  • America/New_York

  • Europe/London

  • GMT

Desplazamiento UTC

  • +/-[hh]:[mm] (ejemplo, +04:45)

  • +/-[hh][mm] (ejemplo, -0530)

  • +/-[hh] (ejemplo, +03)

Opcional

El comienzo de la semana. Se usa cuando la unidad weekes. Por defecto Sunday es.

startOfWeek es una expresión que debe resolverse en una de estas cadenas que no distinguen entre mayúsculas y minúsculas:

  • monday (o mon)

  • tuesday (o tue)

  • wednesday (o wed)

  • thursday (o thu)

  • friday (o fri)

  • saturday (o sat)

  • sunday (o sun)

$dateTrunc:

En conjunto, binSize y unit especifican el período de tiempo utilizado en el $dateTrunc cálculo.

Por ejemplo:

  • Si binSize es 1 y unit houres, el período de tiempo es una hora. Para la fecha, 2021-03-20T11:30:05Z $dateTrunc 2021-03-20T11:00:00Zdevuelve.

  • Si binSize es 2 y unit houres, el período de tiempo es de dos horas. Para la fecha, 2021-03-20T11:30:05Z $dateTrunc 2021-03-20T10:00:00Zdevuelve.

$dateTrunc:

  • Divide el tiempo para el $dateTrunc cálculo en binSize períodos de tiempo en la unidad de tiempo especificada.

    Los períodos de tiempo comienzan en una fecha de referencia, que se determina por unidad. Si la unidad es:

    • Una cadena distinta week de, utiliza una fecha de$dateTrunc referencia 2000-01-01T00:00:00.00Z de. Por ejemplo, si binSize es 10 y unit es, los year períodos de tiempo de ejemplo son:

      • 2000-01-01T00:00:00.00Z

      • 2010-01-01T00:00:00.00Z

      • 2020-01-01T00:00:00.00Z

    • Igual week a, utiliza una fecha de referencia que se establece en el primer día de la semana más temprano que sea mayor o$dateTrunc igual 2000-01-01 que. El primer día se establece usando startOfWeek (el valor predeterminado es domingo).

  • Devuelve el límite inferior del período de tiempo en el que se encuentra la fecha. El límite se devuelve como un ISODate. Si el campo binSize 1 es, establece las partes$dateTrunc menos significativas (determinadas por la unidad) del 0 ISODate devuelto en y mantiene el resto del ISODate sin cambios.

Si unidad es:

Si unidad es:

Crea una colección de cakeSales que incluya ventas de pasteles en el estado de California (CA) y Washington (WA):

db.cakeSales.insertMany( [
{ _id: 0, type: "chocolate", orderDate: new Date("2020-05-18T14:10:30Z"),
state: "CA", price: 13, quantity: 120 },
{ _id: 1, type: "chocolate", orderDate: new Date("2021-03-20T11:30:05Z"),
state: "WA", price: 14, quantity: 140 },
{ _id: 2, type: "vanilla", orderDate: new Date("2021-01-11T06:31:15Z"),
state: "CA", price: 12, quantity: 145 },
{ _id: 3, type: "vanilla", orderDate: new Date("2020-02-08T13:13:23Z"),
state: "WA", price: 13, quantity: 104 },
{ _id: 4, type: "strawberry", orderDate: new Date("2019-05-18T16:09:01Z"),
state: "CA", price: 41, quantity: 162 },
{ _id: 5, type: "strawberry", orderDate: new Date("2019-01-08T06:12:03Z"),
state: "WA", price: 43, quantity: 134 }
] )

La colección cakeSales se utiliza en los siguientes ejemplos.

Este ejemplo utiliza $dateTrunc en una etapa para truncar los valores de ventas de $project pasteles orderDate a dos semanas:

db.cakeSales.aggregate( [
{
$project: {
_id: 1,
orderDate: 1,
truncatedOrderDate: {
$dateTrunc: {
date: "$orderDate", unit: "week", binSize: 2,
timezone: "America/Los_Angeles", startOfWeek: "Monday"
}
}
}
}
] )

En el ejemplo:

  • $project incluye los campos _id, orderDate y truncatedOrderDate en el resultado.

  • $dateTrunc Trunca el orderDate campo a un 2 week período de tiempo America/Los_Angeles de binSize unidad en la zona horaria con startOfWeek establecido Monday en.

En este resultado de ejemplo, el orderDate truncado se muestra en el campo truncatedOrderDate:

[
{
_id: 0,
orderDate: ISODate("2020-05-18T14:10:30.000Z"),
truncatedOrderDate: ISODate("2020-05-11T07:00:00.000Z")
},
{
_id: 1,
orderDate: ISODate("2021-03-20T11:30:05.000Z"),
truncatedOrderDate: ISODate("2021-03-15T07:00:00.000Z")
},
{
_id: 2,
orderDate: ISODate("2021-01-11T06:31:15.000Z"),
truncatedOrderDate: ISODate("2021-01-04T08:00:00.000Z")
},
{
_id: 3,
orderDate: ISODate("2020-02-08T13:13:23.000Z"),
truncatedOrderDate: ISODate("2020-02-03T08:00:00.000Z")
},
{
_id: 4,
orderDate: ISODate("2019-05-18T16:09:01.000Z"),
truncatedOrderDate: ISODate("2019-05-13T07:00:00.000Z")
},
{
_id: 5,
orderDate: ISODate("2019-01-08T06:12:03.000Z"),
truncatedOrderDate: ISODate("2019-01-07T08:00:00.000Z")
}
]

Este ejemplo utiliza $dateTrunc en una etapa para truncar los valores de ventas de $group pasteles orderDate a seis meses y devolver la suma de los quantity valores:

db.cakeSales.aggregate( [
{
$group: {
_id: {
truncatedOrderDate: {
$dateTrunc: {
date: "$orderDate", unit: "month", binSize: 6
}
}
},
sumQuantity: { $sum: "$quantity" }
}
}
] )

En el ejemplo:

  • $group tiene el campo _id configurado en el campo truncatedOrderDate para agrupar los documentos cakeSales, y devuelve la suma de los valores quantity para cada grupo utilizando $sum.

  • $dateTrunc Trunca el orderDate campo a un 6 month período de tiempo unitario binSize.

En este ejemplo de salida, el orderDate truncado se muestra en el campo truncatedOrderDate y la suma quantity se muestra en el campo sumQuantity:

[
{
_id: { truncatedOrderDate: ISODate("2020-01-01T00:00:00.000Z") },
sumQuantity: 224
},
{
_id: { truncatedOrderDate: ISODate("2021-01-01T00:00:00.000Z") },
sumQuantity: 285
},
{
_id: { truncatedOrderDate: ISODate("2019-01-01T00:00:00.000Z") },
sumQuantity: 296
}
]
Califique esta página