Medan Projek dalam Dokumen MongoDB dengan pemandu mongo-go Rasmi
Medan penapisan dalam dokumen MongoDB adalah penting untuk pengambilan data terpilih dan pengoptimuman prestasi . Untuk mencapai matlamat ini, pemandu mongo-go rasmi menyediakan pilihan yang fleksibel.
Pernyataan Masalah:
Percubaan untuk menggunakan kaedah findopt.Projection untuk menekan medan dalam Dokumen MongoDB tidak berjaya. Walaupun menyatakan unjuran menggunakan struct medan, medan itu kekal utuh dalam dokumen yang dikembalikan.
Penyelesaian:
Punca Punca: Struktur medan yang digunakan untuk unjuran tidak dapat akses medannya kerana nama medan yang tidak dieksport.
Penyelesaian: Eksport medan struct namakan dan gunakan tag struct untuk memetakannya ke medan MongoDB yang sepadan (_id dalam kes ini).
Berikut ialah kod yang diubah suai:
type fields struct { ID int `bson:"_id"` } s := bson.NewDocument() filter := bson.NewDocument(bson.EC.ObjectID("_id", starterId)) projection := fields{ ID: 0, } result := staCon.collection.FindOne( nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
Sebagai alternatif, anda boleh menggunakan bson.Document as unjuran:
projection := bson.NewDocument( bson.EC.Int32("_id", 0), ) result := staCon.collection.FindOne( nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
Dengan melaksanakan pengubahsuaian ini, penapisan medan yang diingini akan dicapai, mengakibatkan dokumen dengan medan _id ditindas.
Atas ialah kandungan terperinci Bagaimana untuk Memproyeksikan Medan dengan Berkesan dalam Dokumen MongoDB Menggunakan pemacu mongo-go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!