Zugriff auf MongoDB von Go: Konvertieren des MongoDB-String-Datums in Go-Zeit
Ihr Codeausschnitt zeigt, dass Sie von Go aus auf MongoDB zugreifen und darauf stoßen Eine Herausforderung bei der Konvertierung von MongoDB-Stringdaten in Go Time. Die bereitgestellte clientConfigData-Struktur enthält ein EndDate-Feld, das als Zeichenfolge deklariert ist und dem Speicherformat von MongoDB entspricht. Sie müssen jedoch auf dieses Datum als Go-Time-Wert zugreifen.
Benutzerdefiniertes Marshalling und Unmarshaling
Um diese Konvertierung zu erreichen, sollten Sie die Implementierung einer benutzerdefinierten Marshalling- und Unmarshaling-Logik in Betracht ziehen. Durch die Implementierung der bson.Getter- und bson.Setter-Schnittstellen erhalten Sie Kontrolle über die Werttransformationen während Marshalling- und Unmarshaling-Prozessen.
Erweiterte clientConfigData-Struktur
Erweitern Sie die clientConfigData-Struktur um ein zusätzliches EndDate-Feld vom Typ time.Time (den gewünschten Wert) einzuschließen Typ):
type clientConfigData struct { SMTPAssoc int `bson:"smtp_assoc"` PlanType string `bson:"plan_type"` EndDateStr string `bson:"end_date"` EndDate time.Time `bson:"-"` // bson tag "-" excludes this field from MongoDB }
Benutzerdefinierte Marshalling- und Unmarshaling-Funktionen
Definieren Sie benutzerdefinierte Marshalling- und Unmarshaling-Funktionen für die clientConfigData struct:
const endDateLayout = "2006-01-02 15:04:05" // Customizable date layout func (c *clientConfigData) SetBSON(raw bson.Raw) (err error) { type my clientConfigData if err = raw.Unmarshal((*my)(c)); err != nil { return } c.EndDate, err = time.Parse(endDateLayout, c.EndDateStr) return } func (c *clientConfigData) GetBSON() (interface{}, error) { c.EndDateStr = c.EndDate.Format(endDateLayout) type my *clientConfigData return my(c), nil }
Explanation
Verwendung der neuen Felder
Jetzt können Sie das Feld „EndDate“ verwenden, um auf das Datum als Go-Time-Wert zuzugreifen . Die benutzerdefinierte Marshalling- und Unmarshaling-Logik konvertiert beim Lesen und Speichern von Daten in MongoDB automatisch zwischen den Zeichenfolgen- und Zeitformaten.
Das obige ist der detaillierte Inhalt vonWie konvertiert man MongoDB-String-Daten in Go-Zeit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!