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

Was ist der beste Weg, um Daten in MongoDB zu speichern?

Ich bin gerade dabei, eine MongoDB-Datenbank zu konvertieren, in der Datumsangaben als richtige Date()-Typen gespeichert werden, um sie stattdessen als Zeichenfolgen in der Form yyyy-mm-dd zu speichern . Warum, wenn man bedenkt, dass jeder andere Antwortende sagt, dass dies eine schreckliche Idee ist? Einfach gesagt, wegen der unendlichen Schmerzen, die ich beim Versuch hatte, mit Datumsangaben in JavaScript zu arbeiten, das kein (echtes) Konzept von Zeitzonen hat. Ich habe UTC-Daten in MongoDB gespeichert, d. h. ein Date()-Objekt mit meinem gewünschten Datum und der Uhrzeit, die auf Mitternacht UTC eingestellt ist, aber es ist unerwartet kompliziert und fehleranfällig, ein vom Benutzer übermitteltes Datum korrekt in das Datum umzuwandeln, unabhängig von seiner Zeitzone zufällig in. Ich habe mich bemüht, meinen JavaScript-Code "unabhängig von der lokalen Zeitzone zu UTC" zum Laufen zu bringen (und ja, ich kenne Sugar.js und Moment.js) und habe entschieden, dass einfache Zeichenfolgen wie der gute alte MySQL-Standard yyyy-mm-dd ist der richtige Weg, und ich werde nach Bedarf zur Laufzeit auf der Client-Seite in Date()-Objekte parsen.

Übrigens versuche ich auch, diese MongoDB-Datenbank mit einer FileMaker-Datenbank zu synchronisieren, die ebenfalls kein Zeitzonenkonzept hat. Für mich ist die Einfachheit einfach nicht Das Speichern von Zeitdaten, insbesondere wenn sie bedeutungslos sind, wie UTC Mitternacht, trägt dazu bei, weniger fehlerhaften Code zu gewährleisten, selbst wenn ich hin und wieder zu und von den String-Datumsdaten parsen muss.