Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memproyeksikan Pengecualian Medan dengan betul dalam MongoDB menggunakan pemacu mongo-go?
Mengunjurkan Pengecualian Medan dalam Dokumen MongoDB Menggunakan mongo-go-driver
Membuat unjuran medan dalam dokumen MongoDB membolehkan pengambilan terpilih medan tertentu, tidak termasuk yang dianggap tidak perlu. Ini boleh meningkatkan prestasi dan mengurangkan trafik rangkaian dengan meminimumkan pemindahan data.
Pemandu mongo-go menyediakan mekanisme yang fleksibel untuk unjuran medan melalui pilihan findopt.Projectionnya. Walau bagaimanapun, butiran pelaksanaan tertentu mesti dipatuhi untuk memastikan unjuran berjaya.
Dalam sampel kod yang disediakan:
<br>opts = append(opts, findopt.Projection(medan{</p> <pre class="brush:php;toolbar:false">_id: 0,
}))
Isu timbul daripada menggunakan nama medan (_id) yang tidak dieksport dalam struct medan. Medan yang tidak dieksport tidak boleh diakses oleh pakej lain, termasuk pemandu mongo-go. Untuk menangani perkara ini:
Eksport nama medan: Gunakan nama medan yang bermula dengan huruf besar (cth., ID) dan petakannya ke medan MongoDB menggunakan teg struct:
type fields struct { ID int `bson:"_id"` }
Gunakan bson.Dokumen: Sebagai alternatif, anda boleh membina bson.Dokumen untuk unjuran:
projection := bson.NewDocument( bson.EC.Int32("_id", 0), )
Sekarang, anda boleh melakukan pertanyaan dengan unjuran:
projection := fields{ ID: 0, } result := staCon.collection.FindOne( nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
Pastikan unjuran yang betul ditetapkan menggunakan options.FindOne().SetProjection().
Dengan mematuhi garis panduan ini, anda boleh menayangkan medan dengan berkesan dan mengoptimumkan operasi pengambilan dokumen MongoDB anda menggunakan pemacu mongo-go.
Atas ialah kandungan terperinci Bagaimana untuk Memproyeksikan Pengecualian Medan dengan betul dalam MongoDB menggunakan pemacu mongo-go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!