MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Agregat Mongodb:przekonwertuj datę na inną strefę czasową

W ramach aktualizacji MongoDB 3.6 ma nowy parametr strefy czasowej do manipulowania datami w ramach agregacji. Większość operatorów związanych z datą akceptuje ten opcjonalny parametr, zobacz $hour jako jeden przykład.

Na przykład, jeśli mamy dokument, w którym datą jest dokładnie nowy rok w UTC:

> db.test.find()
{"_id": 1, "dt": ISODate("2018-01-01T00:00:00Z")}

Możemy wyświetlić datę w strefie czasowej Nowego Jorku:

> 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 }

Możemy również wyświetlić datę w strefie czasowej Sydney:

> 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 }

Opis strefy czasowej wykorzystuje standardowy ciąg znaków Olson Timezone Identifier.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sformatuj liczbę jako walutę w SQL

  2. Dokument Czytaj i wstawiaj z blokowaniem/transakcją w nodejs z mongodb

  3. Jak zwrócić wyniki Mongoose z metody find?

  4. Niezawodne ponowne połączenie z MongoDB

  5. Dodaj jakiś numer wiersza do agregującego polecenia / potoku mongodb