MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie speichere ich eine Zeitzone korrekt mit Ruby und MongoId?

Es sieht so aus, als müssten Sie den Feldtyp Ihres Datumsattributs angeben. Ich würde ein Zeitfeld verwenden, wenn Sie möchten, dass Mongoid die Zonen richtig handhabt.

class Lineup
  include Mongoid::Document
  field :date, type: Time
end

Sie werden wahrscheinlich auch Folgendes in config/mongoid.yml

einstellen wollen
defaults: &defaults
  use_utc: false
  use_activesupport_time_zone: true

Das klingt kontraintuitiv, aber dies ist der aktuelle Weg, Mongoid dazu zu bringen, UTC als Standardzeitzone zu verwenden.

Schauen Sie sich schließlich den mongoid-metastamp an Juwel. Es bietet Ihnen viel bessere Unterstützung für Abfragen über mehrere Zeitzonen hinweg, während es dennoch nahtlos wie ein natives Zeitfeld funktioniert.