Mengakses MongoDB daripada Go: Custom Data Marshalling and Unmarshalling
Dalam mengakses MongoDB dengan Go, anda mungkin menghadapi senario di mana data disimpan dalam pangkalan data berbeza dari segi jenis daripada apa yang anda tentukan dalam struct Go anda. Sebagai contoh, medan tarikh MongoDB anda mungkin disimpan sebagai rentetan, manakala struct Go anda menjangkakan masa. Nilai masa.
Untuk menangani perkara ini, Go menyediakan kebolehan untuk melaksanakan logik marshalling dan unmarshalling data tersuai. Dengan menyesuaikan logik ini, anda boleh melakukan penukaran jenis atau menggunakan pemformatan khusus semasa pertukaran data antara MongoDB dan struct Go anda.
Salah satu cara untuk melaksanakan logik tersuai ialah dengan menentukan jenis anda sendiri yang melaksanakan bson.Getter dan bson .Setter antara muka. Antara muka ini membolehkan anda mengawal proses marshalling dan unmarshalling. Sebagai contoh, anda boleh memanjangkan jenis clientConfigData anda dengan medan tambahan masa jenis.Masa bernama EndDate:
Teg bson:"-" menunjukkan bahawa medan EndDate tidak boleh dikekalkan dalam MongoDB.
Seterusnya, laksanakan kaedah GetBSON dan SetBSON untuk mengendalikan marshalling dan unmarshalling tersuai:
Dalam SetBSON(), data mentah dinyahmarshall ke dalam taip tersuai my. Selepas itu, medan EndDateStr dihuraikan menjadi nilai masa. Masa dan diberikan kepada EndDate.
Dalam GetBSON(), medan EndDateStr diisi dari EndDate, dan kemudian jenis tersuai my dikembalikan. Ini menunjukkan bahawa data sedia untuk dimarshall dan diteruskan ke MongoDB.
Dengan melaksanakan logik marshalling dan unmarshalling tersuai ini, anda boleh merapatkan percanggahan jenis antara MongoDB dan struct Go anda, membolehkan anda memanipulasi data dengan lancar antara kedua-dua platform.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Percanggahan Jenis Apabila Mengakses MongoDB dari Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!