Като актуализация, MongoDB 3.6 има нов параметър на часовата зона за манипулиране на датата в рамката за агрегиране. Повечето оператори, свързани с дата, приемат този незадължителен параметър, вижте $hour за един пример.
Например, ако имаме документ, където датата е точно новата година в UTC:
> db.test.find()
{"_id": 1, "dt": ISODate("2018-01-01T00:00:00Z")}
Можем да покажем датата в часовата зона на Ню Йорк:
> db.test.aggregate([
... {$project:{
... date:{$dayOfMonth:{date:'$dt',timezone:'America/New_York'}},
... month:{$month:{date:'$dt',timezone:'America/New_York'}},
... year:{$year:{date:'$dt',timezone:'America/New_York'}},
... hour:{$hour:{date:'$dt',timezone:'America/New_York'}}
... }}
... ])
{ "_id": 1, "date": 31, "month": 12, "year": 2017, "hour": 19 }
Можем също да покажем датата в часовата зона на Сидни:
> db.test.aggregate([
... {$project:{
... date:{$dayOfMonth:{date:'$dt',timezone:'Australia/Sydney'}},
... month:{$month:{date:'$dt',timezone:'Australia/Sydney'}},
... year:{$year:{date:'$dt',timezone:'Australia/Sydney'}},
... hour:{$hour:{date:'$dt',timezone:'Australia/Sydney'}}
... }}
... ])
{ "_id": 1, "date": 1, "month": 1, "year": 2018, "hour": 11 }
Описанието на часовата зона използва стандартния низ на Olson Timezone Identifier.