MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongodb агрегат:преобразувайте датата в друга часова зона

Като актуализация, 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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Грешка с невалиден идентификатор на курсора на mongodb

  2. Как да преименувате база данни на MongoDB?

  3. Използвайте Mongosniff, за да изясните какво чува и казва вашият MongoDB

  4. Как да актуализирам, ако съществува, в противен случай вмъкнете нов документ?

  5. Java Mongodb numberlong заявка