Rumah > pembangunan bahagian belakang > Golang > Mengapa pertanyaan mgo Golang saya mengembalikan objek pengguna kosong?

Mengapa pertanyaan mgo Golang saya mengembalikan objek pengguna kosong?

Susan Sarandon
Lepaskan: 2024-12-16 14:46:15
asal
600 orang telah melayarinya

Why are my Golang mgo queries returning empty user objects?

Objek Kosong dalam Pertanyaan mgo Golang

Dalam kod yang disediakan, apabila menanyakan MongoDB untuk pengguna tertentu dengan col.Find(bson.M {"user": username}).One(&user), struct pengguna dimulakan sebagai objek kosong. Ini berlaku kerana medan struct pengguna tidak dieksport, yang membawa kepada pakej mgo mengabaikannya.

Penyelesaian Menggunakan Medan yang Dieksport

Untuk menyelesaikan isu ini, anda perlu mengeksport medan struct pengguna. Secara lalai, nama medan digunakan semasa mengakses medan daripada MongoDB. Walau bagaimanapun, anda boleh menggunakan teg untuk menentukan pemetaan medan tersuai.

Berikut ialah struct yang diubah suai dengan medan dan teg yang dieksport:

type users struct {
    User string `bson:"user" json:"user"`
    Data string `bson:"data" json:"data"`
}
Salin selepas log masuk

Kini, medan struct pengguna dieksport dengan betul dan pertanyaan akan mengembalikan hasil yang dijangkakan.

Nota Tambahan tentang BSON dan JSON Teg:

Teg bson dan json digunakan untuk menentukan cara medan struct Go dipetakan kepada dokumen MongoDB dan data JSON, masing-masing. Teg bson menentukan nama medan dalam dokumen BSON dan teg json menentukan nama medan dalam data JSON.

Jika anda tidak menentukan teg, nama medan dalam struct akan digunakan secara lalai. Walau bagaimanapun, menggunakan teg membolehkan anda menyesuaikan nama medan untuk keserasian dengan sistem atau konvensyen lain.

Atas ialah kandungan terperinci Mengapa pertanyaan mgo Golang saya mengembalikan objek pengguna kosong?. 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