Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR:
MongoDB vCore
Operatorn $week
returnerar veckonumret för ett datum som ett värde mellan 0 och 53. Vecka 0 börjar den 1 januari och efterföljande veckor börjar på söndagar. Om datumet är null eller saknas $week
returnerar null.
Syntax
Syntaxen för operatorn $isArray
är följande:
{
$week: <dateExpression>
}
Eller med tidszonsspecifikation:
{
$week: {
date: <dateExpression>,
timezone: <timezoneExpression>
}
}
Parameterar
Beskrivning | |
---|---|
dateExpression |
Alla uttryck som matchar ett Datum, Tidsstämpel eller ObjectId. |
timezone |
Valfritt. Tidszonen som ska användas för beräkningen. Kan vara en Olson-tidszonsidentifierare (t.ex. "America/New_York") eller en UTC-förskjutning (t.ex. "+0530"). |
Exempel
Nu ska vi förstå användningen med JSON-exempel från datauppsättningen stores
.
{
"_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 }
}
Exempel 1: Hämta veckonummer för butiksöppningsdatum
I exemplet extraheras veckonumret från butikens öppningsdatum.
db.stores.aggregate([
{ $match: { "_id": "905d1939-e03a-413e-a9c4-221f74055aac" } },
{
$project: {
name: 1,
storeOpeningDate: 1,
openingWeek: { $week: { $toDate: "$storeOpeningDate" } }
}
}
])
Frågan returnerar veckonumret för motsvarande datumvärde i fältet ''storeOpeningDate'.
{
"_id": "905d1939-e03a-413e-a9c4-221f74055aac",
"name": "Trey Research | Home Office Depot - Lake Freeda",
"storeOpeningDate": ISODate("2024-12-30T22:55:25.779Z"),
"openingWeek": 52
}
Exempel 2: Gruppera butiker efter öppningsvecka
Det här exemplet grupperar efter den vecka då de öppnades för analys.
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 } ])
Frågegrupperna lagrar efter deras öppningsvecka och år.
{
"_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"
]
}
Relaterat innehåll
- Granska alternativ för migrering från MongoDB till Azure Cosmos DB för MongoDB (virtuell kärna)
- Läs mer om funktionskompatibilitet med MongoDB