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

Jak poradzić sobie z problemem strefy czasowej podczas przechowywania dat w utc za pomocą mongod?

Oprócz SERVER-6310 wspomnianego przez Matta Johnsona, innym obejściem jest użycie $project operatora, aby dodać lub odjąć od strefy czasowej UTC, aby „przesunąć czas” do właściwej strefy lokalnej. Okazuje się, że możesz dodawać lub odejmować czas w milisekundach.

Na przykład zakładając, że mam pole Data o nazwie orderTime . Chciałbym zapytać o EDT. To jest -4 godziny od UTC. To 4*60*60*1000 milisekund.

Więc napisałbym następującą projekcję, aby uzyskać day_ordered w czasie lokalnym dla wszystkich moich rekordów:

db.table.aggregate( 
    { $project : { orderTimeLocal : { $subtract : [ "$orderTime", 14400000] } } },
    { $project : { day_ordered : { $dayOfYear : "$orderTimeLocal" } } })


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo — ignoruj ​​​​utrwalanie właściwości

  2. Wiele zliczeń z jednym zapytaniem w mongodb

  3. Usuwanie duplikatów rekordów za pomocą MapReduce

  4. Aktualizacja kolekcji Meteorów z tradycyjnym identyfikatorem

  5. Mongodb znajduje się wewnątrz tablicy podrzędnej