Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Memproyeksikan Medan dengan Berkesan dalam Dokumen MongoDB Menggunakan pemacu mongo-go?

Bagaimana untuk Memproyeksikan Medan dengan Berkesan dalam Dokumen MongoDB Menggunakan pemacu mongo-go?

Susan Sarandon
Lepaskan: 2024-12-14 20:04:26
asal
659 orang telah melayarinya

How to Effectively Project Fields in MongoDB Documents Using the mongo-go-driver?

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

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