Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El $dateToParts operador se usa para extraer componentes individuales (Year, Month, Day, Hour, Minute, Second, Millisecond, etc.) de un objeto date. El operador es útil para escenarios en los que se requiere manipulación o análisis de partes de fecha específicas, como la ordenación, el filtrado o la agregación de datos basados en componentes de fecha individuales.
Syntax
$dateToParts: {
date: <dateExpression>,
timezone: <string>, // optional
iso8601: <boolean> // optional
}
Parámetros
| Parámetro | Description |
|---|---|
date |
Expresión de fecha de la que se van a extraer partes. |
timezone |
Optional. Especifica la zona horaria de la fecha. El valor predeterminado es UTC si no se proporciona. |
iso8601 |
Optional. Si es true, el operador usa el sistema de calendario de fechas de la semana ISO 8601. El valor predeterminado es False. |
Examples
Considere este documento de ejemplo de la colección de tiendas.
{
"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4",
"name": "First Up Consultants | Beverage Shop - Satterfieldmouth",
"location": {
"lat": -89.2384,
"lon": -46.4012
},
"staff": {
"totalStaff": {
"fullTime": 8,
"partTime": 20
}
},
"sales": {
"totalSales": 75670,
"salesByCategory": [
{
"categoryName": "Wine Accessories",
"totalSales": 34440
},
{
"categoryName": "Bitters",
"totalSales": 39496
},
{
"categoryName": "Rum",
"totalSales": 1734
}
]
},
"promotionEvents": [
{
"eventName": "Unbeatable Bargain Bash",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 6,
"Day": 23
},
"endDate": {
"Year": 2024,
"Month": 7,
"Day": 2
}
},
"discounts": [
{
"categoryName": "Whiskey",
"discountPercentage": 7
},
{
"categoryName": "Bitters",
"discountPercentage": 15
},
{
"categoryName": "Brandy",
"discountPercentage": 8
},
{
"categoryName": "Sports Drinks",
"discountPercentage": 22
},
{
"categoryName": "Vodka",
"discountPercentage": 19
}
]
},
{
"eventName": "Steal of a Deal Days",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 9,
"Day": 21
},
"endDate": {
"Year": 2024,
"Month": 9,
"Day": 29
}
},
"discounts": [
{
"categoryName": "Organic Wine",
"discountPercentage": 19
},
{
"categoryName": "White Wine",
"discountPercentage": 20
},
{
"categoryName": "Sparkling Wine",
"discountPercentage": 19
},
{
"categoryName": "Whiskey",
"discountPercentage": 17
},
{
"categoryName": "Vodka",
"discountPercentage": 23
}
]
}
]
}
Ejemplo 1: Extracción de partes de fecha de un campo
Esta consulta usa $dateToParts para dividir la lastUpdated fecha en componentes como año, mes, día y hora. Ayuda a analizar o transformar partes individuales de una fecha para su posterior procesamiento.
db.stores.aggregate([
{
$match: { _id: "e6410bb3-843d-4fa6-8c70-7472925f6d0a" }
},
{
$project: {
_id: 0,
dateParts: {
$dateToParts: {
date: "$lastUpdated"
}
}
}
}
])
Esta consulta devuelve el resultado siguiente.
[
{
"dateParts": {
"year": 2024,
"month": 12,
"day": 4,
"hour": 11,
"minute": 50,
"second": 6,
"millisecond": 0
}
}
]
Ejemplo 2: Uso de zona horaria
Esta consulta extrae la lastUpdated marca de tiempo de un documento específico y la divide en partes de fecha como año, mes, día y hora mediante $dateToParts. La inclusión de la zona horaria "America/New_York" permite el desglose, refleja la hora local en lugar de UTC.
db.stores.aggregate([
{
$match: { _id: "e6410bb3-843d-4fa6-8c70-7472925f6d0a" }
},
{
$project: {
_id: 0,
datePartsWithTimezone: {
$dateToParts: {
date: "$lastUpdated",
timezone: "America/New_York"
}
}
}
}
])
Esta consulta devuelve el resultado siguiente.
[
{
"datePartsWithTimezone": {
"year": 2024,
"month": 12,
"day": 4,
"hour": 6,
"minute": 50,
"second": 6,
"millisecond": 0
}
}
]