sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur hanterar man tidszonsproblemet när man lagrar datum i utc med mongod?

Förutom SERVER-6310 som nämns av Matt Johnson, är en annan lösning att använda $project operatör för att lägga till eller subtrahera från UTC-tidszonen för att "skifta tiden" till rätt lokala zon. Det visar sig att du kan lägga till eller subtrahera tid i millisekunder.

Om jag till exempel har ett datumfält som heter orderTime . Jag skulle vilja fråga efter EDT. Det är -4 timmar från UTC. Det är 4 * 60 * 60 * 1000 millisekunder.

Så jag skulle då skriva följande projektion för att få day_ordered i lokal tid för alla mina poster:

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


  1. MongoDB $mod

  2. MongoDB - Exportera data

  3. Hitta en sträng i en sträng i SQL

  4. Custom Cascading in Spring Data MongoDB