sql >> Databáze >  >> NoSQL >> MongoDB

Jak se vypořádat s problémem časového pásma při ukládání dat v utc pomocí mongodu?

Kromě SERVER-6310 zmíněného Mattem Johnsonem je dalším řešením použití $project operátor přidat nebo odečíst od časového pásma UTC a "posunout čas" do správné místní zóny. Ukázalo se, že můžete přidat nebo odečíst čas v milisekundách.

Za předpokladu, že mám například pole Datum nazvané orderTime . Chtěl bych se zeptat na EDT. To je -4 hodiny od UTC. To je 4 * 60 * 60 * 1000 milisekund.

Takže bych pak napsal následující projekci, abych dostal day_ordered v místním čase pro všechny mé záznamy:

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


  1. Bitva o databáze NoSQL - Porovnání MongoDB a Firebase

  2. Je možné získat pole v pořadí projekce v Agregation Frameworks mongo

  3. Jak používat Redis hashe

  4. Redis sub/pub a php/nodejs