從Go 存取MongoDB 時,您可能會遇到需要轉換資料類型的情況,例如處理儲存為MongoDB 中的字串,但要求它們作為Go time.Time 物件。以下是解決此問題的方法:
要在MongoDB 和Go 之間編組/解組期間處理類型轉換,請使用bson.Getter 和bson .Setter 介面實作自訂邏輯。
首先,使用擴充clientConfigData time.Time 類型的附加欄位EndDate:
type clientConfigData struct { SMTPAssoc int `bson:"smtp_assoc"` PlanType string `bson:"plan_type"` EndDateStr string `bson:"end_date"` EndDate time.Time `bson:"-"` }
const endDateLayout = "2006-01-02 15:04:05" 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 }
此自訂封送處理解群組邏輯可讓您在字串和時間之間轉換日期。從 Go 存取 MongoDB 時的時間格式。
以上是從 Go 存取 MongoDB 時如何處理日期轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!