Mongoose a new Date()

Pokud v NodeJS používáte pro práci s databázi MongoDB knihovnu Mongoose a snažíte se ulehčit si práci při ukládání dat do collections skrze defaultní hodnotu prvku jako já:

Pak se dočkáte nemilého překvapení, že vám nebude čas v databázi sedět s reálným časem. Až jako já prohledáte všechny možnosti kde se na vašem serveru nastavuje timezone a zjsitíte, že máte vše OK, začnete pátrat kolem MongoDB, respektive přímo v Mongoose…

UTC

No a pak zjisíte, že váš čas je ukládán v UTC, a proto nesedí.

clock-change-time-dst

Řešení

Protože jsem v databázi měl opravdu skutečný čas, je potřeba zrušit hodnotu default v definici mongoose schematu vaší collection a datum s časem si vypočítat sám: