Pengendalian Data Tidak Berstruktur dalam MongoDB dengan mgo
Bagi pembangun Go yang baru, perpustakaan mgo boleh memberikan cabaran apabila berurusan dengan data tidak berstruktur dalam koleksi MongoDB . Had ini timbul daripada keperluan untuk menentukan struct dengan data yang telah ditetapkan yang akan dikembalikan melalui pertanyaan. Tidak seperti bahasa seperti PHP, di mana rekod boleh diberikan kepada tatasusunan untuk akses fleksibel kepada kunci, Go tidak mempunyai keupayaan sedemikian.
Walau bagaimanapun, mgo menyediakan beberapa pendekatan untuk mengendalikan data tidak berstruktur:
Menggunakan Peta:
Menggunakan peta jenis bson.M membenarkan anda untuk menyimpan data yang diambil dalam format nilai kunci:
var m bson.M err := collection.Find(nil).One(&m) check(err) for key, value := range m { fmt.Println(key, value) }
Menggunakan Sekeping Dokumen:
Sekeping bson.D menawarkan pendekatan yang dioptimumkan, memelihara susunan kunci:
var d bson.D err := collection.Find(nil).One(&d) check(err) for i, elem := range d { fmt.Println(elem.Name, elem.Value) }
Menggunakan Peta ,sebaris Medan:
Menggabungkan fleksibiliti peta dan kemudahan struct, bendera ,inline bson membenarkan medan peta ,inline dalam struct, menyediakan akses medan yang diketahui dan tidak diketahui:
type Person struct { ID bson.ObjectId `bson:"_id,omitempty"` Name string Phone string Extra bson.M `bson:",inline"` }
Atas ialah kandungan terperinci Bagaimanakah Perpustakaan mgo Go Boleh Mengendalikan Data Tidak Berstruktur dengan Berkesan dalam MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!