Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İfade $dateTrunc işleci bir tarihi belirtilen en yakın birime (örneğin, saat, gün, ay) kısaltır. Zaman serisi verileriyle çalışırken veya verileri belirli zaman aralıklarına göre gruplandırırken kullanışlıdır. Bu işleç, tarih hesaplamalarını basitleştirmek ve standartlaştırmak için kullanılabilir.
Sözdizimi
$dateTrunc: {
date: <dateExpression>,
unit: "<unit>",
binSize: <number>, // optional
timezone: "<timezone>", // optional
startOfWeek: "<day>" // optional (used when unit is "week")
}
Parametreler
| Parametre | Description |
|---|---|
date |
Kesecek tarih. |
unit |
Tarihin kesilmesi için birim. Desteklenen değerler , , , , , , , yearmonthve weekdeğerlerini içerirday. hourminutesecondmillisecond |
binSize |
(İsteğe bağlı) Kesme için her bir bölmenin boyutu. Örneğin, binSize 2 ve unit ise hour, tarih 2 saatte bir kesilir. |
timezone |
(İsteğe bağlı) Kesme için kullanılacak saat dilimi. Belirtilmezse varsayılan olarak UTC olur. |
Örnekler
Stores koleksiyonundaki bu örnek belgeyi göz önünde bulundurun.
{
"_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
}
]
}
]
}
Örnek 1: Güne kesme
Bu sorgu, utc'de $dateTrunc zaman damgasını günün başlangıcına (00:00:00) kesmek için kullanırlastUpdated. işleç, zaman fark etmeksizin verileri takvim gününe göre gruplandırma veya karşılaştırma için kullanışlıdır.
db.stores.aggregate([
{
$match: { _id: "e6410bb3-843d-4fa6-8c70-7472925f6d0a" }
},
{
$project: {
_id: 0,
truncatedToDay: {
$dateTrunc: {
date: "$lastUpdated",
unit: "day"
}
}
}
}
])
Bu sorgu aşağıdaki sonucu döndürür.
[
{
"truncatedToDay": "2024-11-29T00:00:00.000Z"
}
]
Örnek 2: Haftanın başına kadar kesme
Bu sorgu $dateTrunc , zaman damgasını lastUpdated hafta başına kadar aşağı yuvarlar. Takvim hizalamasının tutarlı olmasını sağlamak için haftanın başlangıcı olarak Pazartesi'yi belirtir.
db.stores.aggregate([
{
$match: { _id: "e6410bb3-843d-4fa6-8c70-7472925f6d0a" }
},
{
$project: {
_id: 0,
truncatedToWeek: {
$dateTrunc: {
date: "$lastUpdated",
unit: "week",
startOfWeek: "Monday"
}
}
}
}
])
Bu sorgu aşağıdaki sonucu döndürür.
[
{
"truncatedToWeek": "2024-11-25T00:00:00.000Z"
}
]