Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
ANWENDBAR AUF:
MongoDB-vCore
Der $week
Operator gibt die Wochennummer für ein Datum als Wert zwischen 0 und 53 zurück. Die Woche 0 beginnt am 1. Januar und die nachfolgenden Wochen beginnen am Sonntag. Wenn das Datum null oder fehlt, $week
wird NULL zurückgegeben.
Syntax
Die Syntax für den Operator $week
lautet wie folgt:
{
$week: <dateExpression>
}
Oder mit Zeitzonenspezifikation:
{
$week: {
date: <dateExpression>,
timezone: <timezoneExpression>
}
}
Die Parameter
BESCHREIBUNG | |
---|---|
dateExpression |
Jeder Ausdruck, der in ein Datums-, Zeitstempel- oder ObjectId-Objekt aufgelöst wird. |
timezone |
Wahlfrei. Die Zeitzone, die für die Berechnung verwendet werden soll. Kann ein Olson-Zeitzonenbezeichner (z. B. "Amerika/New_York") oder ein UTC-Offset (z. B. "+0530") sein. |
Beispiel
Lassen Sie uns die Verwendung mit BEISPIEL-JSON aus dem stores
Dataset verstehen.
{
"_id": "905d1939-e03a-413e-a9c4-221f74055aac",
"name": "Trey Research | Home Office Depot - Lake Freeda",
"location": { "lat": -48.9752, "lon": -141.6816 },
"staff": { "employeeCount": { "fullTime": 12, "partTime": 19 } },
"sales": {
"salesByCategory": [ { "categoryName": "Desk Lamps", "totalSales": 37978 } ],
"revenue": 37978
},
"promotionEvents": [
{
"eventName": "Crazy Deal Days",
"promotionalDates": {
"startDate": { "Year": 2023, "Month": 9, "Day": 27 },
"endDate": { "Year": 2023, "Month": 10, "Day": 4 }
},
"discounts": [
{ "categoryName": "Desks", "discountPercentage": 22 },
{ "categoryName": "Filing Cabinets", "discountPercentage": 23 }
]
}
],
"company": "Trey Research",
"city": "Lake Freeda",
"storeOpeningDate": ISODate("2024-12-30T22:55:25.779Z"),
"lastUpdated": { "t": 1729983325, "i": 1 }
}
Beispiel 1: Abrufen der Wochennummer für das Eröffnungsdatum des Stores
Im Beispiel wird die Wochennummer aus dem Store-Eröffnungsdatum extrahiert.
db.stores.aggregate([
{ $match: { "_id": "905d1939-e03a-413e-a9c4-221f74055aac" } },
{
$project: {
name: 1,
storeOpeningDate: 1,
openingWeek: { $week: { $toDate: "$storeOpeningDate" } }
}
}
])
Die Abfrage gibt die Wochennummer für den entsprechenden Datumswert im Feld "StoreOpeningDate" zurück.
{
"_id": "905d1939-e03a-413e-a9c4-221f74055aac",
"name": "Trey Research | Home Office Depot - Lake Freeda",
"storeOpeningDate": ISODate("2024-12-30T22:55:25.779Z"),
"openingWeek": 52
}
Beispiel 2: Gruppenspeicher nach Eröffnungswoche
In diesem Beispiel werden Speicher nach der Woche gruppiert, die für die Analyse geöffnet wurden.
db.stores.aggregate([
{
$project: {
name: 1,
openingWeek: { $week: { $toDate: "$storeOpeningDate" } },
openingYear: { $year: { $toDate: "$storeOpeningDate" } }
}
},
{
$group: {
_id: { week: "$openingWeek", year: "$openingYear" },
storeCount: { $sum: 1 },
stores: { $push: "$name" }
}
},
{ $sort: { "_id.year": 1, "_id.week": -1 } },
{ $limit : 3 } ])
Die Abfragegruppen speichern nach ihrer Eröffnungswoche und ihrem Jahr.
{
"_id": { "week": 40, "year": 2021 },
"storeCount": 1,
"stores": [ "First Up Consultants | Bed and Bath Center - South Amir" ]
},
{
"_id": { "week": 52, "year": 2024 },
"storeCount": 1,
"stores": [ "Trey Research | Home Office Depot - Lake Freeda" ]
},
{
"_id": { "week": 50, "year": 2024 },
"storeCount": 2,
"stores": [
"Fourth Coffee | Paper Product Bazaar - Jordanechester",
"Adatum Corporation | Pet Supply Center - West Cassie"
]
}
Verwandte Inhalte
- Prüfen Sie die Optionen für die Migration von MongoDB zu Azure Cosmos DB for MongoDB (virtueller Kern).
- Erfahren Sie mehr über die Featurekompatibilität mit MongoDB