Rumah > Artikel > pembangunan bahagian belakang > Bagaimana Mengendalikan Penukaran Tarikh Apabila Mengakses MongoDB dari Go?
Apabila mengakses MongoDB daripada Go, anda mungkin menghadapi situasi di mana anda perlu menukar jenis data, seperti mengendalikan tarikh yang disimpan sebagai rentetan dalam MongoDB tetapi memerlukannya sebagai masa Go. Objek masa. Begini cara untuk menangani perkara ini:
Untuk mengendalikan penukaran jenis semasa marshaling/unmarshaling antara MongoDB dan Go, laksanakan logik tersuai menggunakan antara muka bson.Getter dan bson.Setter.
Pertama, lanjutkan clientConfigData dengan medan tambahan EndDate masa jenis.Masa:
type clientConfigData struct { SMTPAssoc int `bson:"smtp_assoc"` PlanType string `bson:"plan_type"` EndDateStr string `bson:"end_date"` EndDate time.Time `bson:"-"` }
Melaksanakan logik marshal/unmarshal tersuai dalam SetBSON() dan GetBSON() kaedah:
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 }
Untuk mengelakkan limpahan tindanan, cipta jenis perantaraan saya baharu dalam kedua-dua kaedah, membenarkan penukaran tanpa rekursi yang tidak berkesudahan.
Logik marshaling dan unmarshaling tersuai ini membolehkan anda menukar tarikh antara rentetan dan masa .Format masa apabila mengakses MongoDB daripada Go.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Penukaran Tarikh Apabila Mengakses MongoDB dari Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!