Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencari Dokumen dengan ID Menggunakan Perpustakaan mgo di Golang?

Bagaimana untuk Mencari Dokumen dengan ID Menggunakan Perpustakaan mgo di Golang?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-31 20:51:29280semak imbas

How to Find a Document by ID Using mgo Library in Golang?

Cari ID dengan Perpustakaan mgo di Golang

Dalam kod yang disediakan, isu biasa timbul apabila cuba mencari dokumen menggunakan IDnya menggunakan perpustakaan mgo di Golang. Kunci untuk memahami ralat ini terletak pada sifat ID objek dalam MongoDB.

Memahami ID Objek

ID Objek dalam MongoDB ialah nilai heksadesimal 12 bait unik yang berfungsi sebagai kunci utama bagi setiap dokumen. Walau bagaimanapun, apabila bekerja dengan Golang, ID ini sering diwakili sebagai rentetan heksadesimal 24 aksara. Ini kerana rentetan ini mengekodkan 12 bait ID objek menggunakan dua digit heksadesimal setiap bait.

Ralat

Mesej ralat "ObjectIDs mestilah tepat 12 bait long (mendapat 24)" menunjukkan bahawa kod itu cuba menggunakan rentetan 24 aksara sebagai ID objek. Walau bagaimanapun, MongoDB menjangkakan ID objek 12-bait, yang bukan apa yang diwakili oleh rentetan 24 aksara.

Penyelesaian

Penyelesaian kepada isu ini adalah dengan menggunakan fungsi bson.ObjectIdHex() untuk menukar rentetan heksadesimal 24 aksara kepada bson.ObjectId yang sah. Kod yang diubah suai sepatutnya kelihatan seperti ini:

<code class="go">err = coll.FindId(bson.ObjectIdHex(message.ID)).One(&result)</code>

Sekarang, pembolehubah ralat akan menunjukkan dengan betul sama ada dokumen dengan ID yang ditentukan telah ditemui.

Menukar Kembali

Dalam senario di mana anda mempunyai bson.ObjectId dan perlu mendapatkan perwakilan heksadesimal 24 aksaranya, anda boleh menggunakan kaedah ObjectId.Hex().

Maklumat Tambahan

Adalah penting untuk ambil perhatian bahawa walaupun mesej ralat menunjukkan bahawa percanggahan panjang ialah 24 bait, ia sebenarnya 12 bait. Ini kerana saiz ID objek ialah 12 bait, tetapi mesej ralat juga termasuk petikan yang mengelilingi rentetan perenambelasan.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Dokumen dengan ID Menggunakan Perpustakaan mgo di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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