Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De $dateToParts operator wordt gebruikt voor het extraheren van afzonderlijke onderdelen (Jaar, Maand, Dag, Uur, Minuut, Seconde, Milliseconden, enzovoort) uit een datumobject. De operator is handig voor scenario's waarbij manipulatie of analyse van specifieke datumonderdelen vereist is, zoals sorteren, filteren of samenvoegen van gegevens op basis van afzonderlijke datumonderdelen.
Syntaxis
$dateToParts: {
date: <dateExpression>,
timezone: <string>, // optional
iso8601: <boolean> // optional
}
Parameterwaarden
| Kenmerk | Description |
|---|---|
date |
De datumexpressie waaruit onderdelen moeten worden geëxtraheerd. |
timezone |
Optional. Hiermee geeft u de tijdzone voor de datum. Standaard ingesteld op UTC als deze niet is opgegeven. |
iso8601 |
Optional. Indien waar, gebruikt de operator iso 8601 week kalendersysteem. Standaard ingesteld op onwaar. |
Voorbeelden
Bekijk dit voorbeelddocument uit de winkelverzameling.
{
"_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
}
]
}
]
}
Voorbeeld 1: Datumonderdelen uit een veld extraheren
Deze query gebruikt $dateToParts om de lastUpdated datum op te splitsen in onderdelen zoals jaar, maand, dag en tijd. Het helpt bij het analyseren of transformeren van afzonderlijke onderdelen van een datum voor verdere verwerking.
db.stores.aggregate([
{
$match: { _id: "e6410bb3-843d-4fa6-8c70-7472925f6d0a" }
},
{
$project: {
_id: 0,
dateParts: {
$dateToParts: {
date: "$lastUpdated"
}
}
}
}
])
Deze query retourneert het volgende resultaat.
[
{
"dateParts": {
"year": 2024,
"month": 12,
"day": 4,
"hour": 11,
"minute": 50,
"second": 6,
"millisecond": 0
}
}
]
Voorbeeld 2: tijdzone gebruiken
Met deze query wordt de lastUpdated tijdstempel van een specifiek document geëxtraheerd en opgesplitst in datumonderdelen zoals jaar, maand, dag en uur met behulp van $dateToParts. Als u de tijdzone 'Amerika/New_York' opgeeft, wordt de uitsplitsing van de lokale tijd weergegeven in plaats van UTC.
db.stores.aggregate([
{
$match: { _id: "e6410bb3-843d-4fa6-8c70-7472925f6d0a" }
},
{
$project: {
_id: 0,
datePartsWithTimezone: {
$dateToParts: {
date: "$lastUpdated",
timezone: "America/New_York"
}
}
}
}
])
Deze query retourneert het volgende resultaat.
[
{
"datePartsWithTimezone": {
"year": 2024,
"month": 12,
"day": 4,
"hour": 6,
"minute": 50,
"second": 6,
"millisecond": 0
}
}
]