Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menapis Medan MongoDB dengan Berkesan Menggunakan pemacu mongo-go?
Menapis Medan dalam Dokumen MongoDB dengan pemandu mongo-go
Salah satu keupayaan utama pertanyaan MongoDB ialah keupayaan untuk menapis medan dikembalikan dalam hasil pertanyaan. Ini dikenali sebagai unjuran medan.
Menyiasat dengan Unjuran Medan
Pemandu mongo-go menyediakan beberapa pilihan untuk menentukan unjuran medan. Satu pilihan ialah menggunakan fungsi findopt.Projection. Walau bagaimanapun, seperti yang anda temui, pendekatan ini boleh gagal jika nama medan dalam struktur unjuran tidak dieksport. Untuk menangani isu ini, anda boleh menggunakan strategi berikut:
Kaedah 1: Gunakan Nama Medan yang Dieksport
Pendekatan yang paling mudah ialah menggunakan nama medan yang dieksport (iaitu, medan yang bermula dengan huruf besar) dalam struct unjuran anda. Ini memastikan bahawa nama medan boleh diakses oleh pemandu mongo-go.
type Fields struct { ID int `bson:"_id"` } projection := Fields{ ID: 0, }
Kaedah 2: Gunakan Tag Struct
Sebagai alternatif, anda boleh menggunakan tag struct untuk memetakan nama medan yang tidak dieksport ke medan MongoDB yang sepadan nama.
type Fields struct { _id int `bson:"_id"` } projection := Fields{ _id: 0, }
Menggunakan Unjuran dalam Pertanyaan
Setelah anda menentukan unjuran, anda boleh menggunakannya dalam kaedah FindOne atau Find dengan menetapkan SetProjection pilihan.
filter := bson.NewDocument(bson.EC.ObjectID("_id", starterId)) result := staCon.collection.FindOne(nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
Contoh Penggunaan bson.M
Sehingga versi mongo-go-driver yang terkemudian, anda juga boleh menentukan unjuran menggunakan peta bson.M yang mudah.
options.FindOne().SetProjection(bson.M{"_id": 0})
Atas ialah kandungan terperinci Bagaimana untuk Menapis Medan MongoDB dengan Berkesan Menggunakan pemacu mongo-go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!