1

Wir haben eine einfache Anwendung, in der wir alle Benutzer in der gleichen Zeitzone & haben, daher sind wir nicht daran interessiert, Zeitzone Informationen in Mongo Datum Objekt zu speichern.MongoDB - Speichern von Datum ohne Zeitzone

Grund für solch extremen Schritt ist, haben wir mehrere Mikro-Service mit gemeinsamen Datenbank von verschiedenen Entwicklern verwaltet. Für jeden von ihnen ist es erforderlich, in der Abfrage & Zeitzonen-bezogene Daten explizit festzulegen, wobei die gleichen Ergebnisse in einem ungültigen Datensatz vergessen werden.

Da zur Zeit Leute MongoDB Mongo Data Types

unterstützt keine Termine ohne Zeitzone zu speichern.

eifrig nur zu wissen, das ist sie jeder alternativer Ansatz Zeitpunkt ohne Zeitzone in Mongo darzustellen, mit denen wir können noch in der Lage Vorteil von Mongo Datenbankabfragen zu nehmen Datum basierte Syntax wie Datumsbereiche, Datum etc.

Bei der Gleichzeitig wäre es für DBAs praktisch, Datensätze zu lesen und zu verwalten.

Antwort

0

Blick auf diese Antwort: https://stackoverflow.com/a/6776273/6105830

Sie zwei Arten von langen Darstellung verwenden können (Millisekunden oder Format yyyyMMddHHmmss). Dies sind die einzigen Möglichkeiten, die Zeitzone nicht zu speichern und trotzdem Bereichsabfragen durchführen zu können.

Leider haben Sie einige Aggregationseigenschaften verloren. Aber Sie können etwas tun, um zwei Darstellungen zu behalten und sie zu geeigneten Zeiten zu verwenden.

+0

hmmm Ich habe diesen Beitrag vor dem Posten Problem überprüft. Problem bei diesem Ansatz ist, dass beide das Datum für Menschen nicht lesbar machen. Daher muss jede DBA-Operation, die zuvor direkt auf der Konsole ausgeführt werden kann, einen Conversion-Wrapper verwenden, um von Menschen lesbare in int-Werte umzuwandeln und umgekehrt. Dies führt zu einem anderen Problem. – tarunkumar

+0

Ich glaube nicht, das Format JJJJMMTTHHmmss ist unlesbar haha ​​ Aber für Ihr Problem, ich denke, die andere Möglichkeit (vielleicht nur eine) können Sie die Zeitzone speichern und subtrahieren/hinzufügen Zeitzone Offset in Abfragen, genau wie diese Aggregation (in Java): { "$ Projekt": { "date": { "$ add": [ "$ date", TimeZone.getDefault() getOffset (System.currentTimeMillis()) . ] } } } –

+0

oopss kann mein Verständnis ist falsch über yyyyMMddHHmmss, ich ging davon aus, das gleiche wie ein int/long nur mit extrahierten Werten zu speichern. Ja, ich denke, es sollte perfekt funktionieren, auch für die Bereiche Abfrage, obwohl wir einige benutzerdefinierte Regex schreiben müssen, wo wir Jahr ignorieren müssen. Ich würde auch Ihre zweite vorgeschlagene Lösung versuchen. – tarunkumar