sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan håndterer man tidszoneproblemet, når man gemmer datoer i utc ved hjælp af mongod?

Bortset fra SERVER-6310 nævnt af Matt Johnson, er en anden løsning at bruge $project operatør for at lægge til eller trække fra UTC-tidszonen for at "skifte tiden" til den korrekte lokale zone. Det viser sig, at du kan tilføje eller trække tid i millisekunder.

For eksempel, hvis jeg antager, at jeg har et datofelt kaldet orderTime . Jeg vil gerne spørge efter EDT. Det er -4 timer fra UTC. Det er 4 * 60 * 60 * 1000 millisekunder.

Så jeg ville så skrive følgende projektion for at få day_ordered i lokal tid for alle mine optegnelser:

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


  1. ønsker at køre redis-server i baggrunden nonstop

  2. Kan redis fuldt ud erstatte mysql?

  3. Redis - Brugernavn, adgangskode og db?

  4. Start mongod fork, FEJL:underordnet proces mislykkedes, afsluttet med fejl nummer 1