Bagaimana untuk Menghantar Dokumen BSON ke Fungsi dalam Go dengan mgo?

Barbara Streisand
Lepaskan: 2024-11-21 13:22:11
asal
874 orang telah melayarinya

How to Pass BSON Documents to Functions in Go with mgo?

Meluluskan Dokumen BSON dalam Go Lang

Dalam Go, anda boleh menyambung ke MongoDB dan memanipulasi data menggunakan pustaka mgo. Untuk memasukkan dokumen ke dalam MongoDB, anda perlu membina dokumen BSON, yang mewakili data yang anda ingin simpan.

Apabila menghantar dokumen BSON ke fungsi dalam pakej lain (cth., dbEngine.go), anda mungkin menghadapi ralat apabila menggunakan jenis antara muka{}. Ini kerana mgo menjangkakan jenis tertentu untuk dipetakan kepada struktur dokumen BSON.

Daripada membuat dokumen BSON secara manual, adalah disyorkan untuk menggunakan struct Go untuk mentakrifkan bentuk data yang ingin anda masukkan. Contohnya, dalam account.go, anda boleh mencipta struct seperti:

type Account struct {
  Id bson.ObjectId `bson:"_id"`
  BalanceAmount int
  // Other field
}
Salin selepas log masuk

Kemudian, dalam dbEngine.go, anda boleh mengemas kini fungsi Insert anda untuk menerima penunjuk kepada struct:

func Insert(document interface{}){
  session, err := mgo.Dial("localhost")
  // check error
  c := session.DB("db_name").C("collection_name")
  err := c.Insert(document)
}
Salin selepas log masuk

Akhir sekali, anda boleh menggunakan struct untuk mencipta akaun baharu dan memasukkannya ke dalam MongoDB:

acc := Account{}
acc.Id = bson.NewObjectId()
acc.BalanceAmount = 3

dbEngine.Insert(&acc);
Salin selepas log masuk

Dengan menggunakan struct, anda memastikan bahawa data diformat dengan betul dan serasi dengan struktur dokumen BSON yang diperlukan oleh MongoDB.

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Dokumen BSON ke Fungsi dalam Go dengan mgo?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan