Mengendalikan Koleksi MongoDB Tidak Berstruktur dalam Go dengan mgo
Apabila menanyakan koleksi dalam MongoDB dengan mgo, adalah mungkin untuk mentakrifkan data yang akan dikembalikan dalam struct, seperti yang ditunjukkan dengan contoh struct Person yang disediakan. Walau bagaimanapun, mungkin terdapat senario di mana dokumen dalam koleksi mempunyai set kunci yang berbeza-beza.
Cara Mengendalikan Koleksi Tidak Berstruktur dalam Go / mgo
Terdapat pelbagai cara untuk mengendalikan koleksi tidak berstruktur dalam Go / mgo:
Menggunakan peta:
Dengan menggunakan jenis bson.M, iaitu peta[rentetan]antara muka{}, anda boleh menyimpan data dokumen secara langsung tanpa mentakrifkan struktur tertentu.
var m bson.M err := collection.Find(nil).One(&m) check(err) for key, value := range m { fmt.Println(key, value) }
Menggunakan kepingan dokumen:
bson.D ialah jenis kepingan yang mengekalkan susunan kunci dan menyediakan mekanisme yang cekap untuk mengendalikan dokumen.
var d bson.D err := collection.Find(nil).One(&d) check(err) for i, elem := range d { fmt.Println(elem.Name, elem.Value) }
Menggunakan medan peta sebaris:
Dengan menggunakan bendera ,inline bson dalam medan peta dalam struct, anda boleh menggabungkan kemudahan menggunakan struct dengan fleksibiliti mengendalikan medan yang tidak diketahui.
type Person struct { ID bson.ObjectId `bson:"_id,omitempty"` Name string Phone string Extra bson.M `bson:",inline"` }
Atas ialah kandungan terperinci Bagaimana untuk Menyoal Koleksi MongoDB Tidak Berstruktur dalam Go dengan mgo?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!