Menapis Medan daripada Dokumen MongoDB dengan Mongo-Go-Driver
Untuk menapis medan tertentu daripada dokumen MongoDB menggunakan Mongodb-Go-Driver, pilihan findopt.Projection boleh digunakan. Walau bagaimanapun, dalam kod yang anda berikan, isu timbul kerana medan _id dalam struct medan tidak dieksport (bermula dengan huruf kecil).
Penyelesaian Disemak:
Untuk menyelesaikan masalah ini, nama medan hendaklah dieksport (bermula dengan huruf besar) dan menggunakan tag struct untuk memetakannya ke medan _id MongoDB. Kod yang dikemas kini:
type fields struct { ID int `bson:"_id"` }
Unjuran menggunakan Pilihan Unjuran:
Untuk melakukan pertanyaan dengan unjuran, gunakan kaedah pilihan.FindOne().SetProjection(unjuran) , dengan unjuran mewakili medan yang diingini untuk diambil semula.
Dikemas kini Kod:
projection := fields{ ID: 0, } result := staCon.collection.FindOne( nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
Alternatif Menggunakan bson.Dokumen:
Sebagai alternatif, bson.Dokumen boleh digunakan sebagai unjuran:
projection := bson.NewDocument( bson.EC.Int32("_id", 0), ) result := staCon.collection.FindOne( nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
Menggunakan pendekatan ini, anda boleh menapis medan tertentu daripada dokumen MongoDB, menyekat yang tidak perlu medan seperti _id jika mahu.
Atas ialah kandungan terperinci Bagaimana untuk Menapis Medan Khusus daripada Dokumen MongoDB menggunakan Mongo-Go-Driver?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!