Nilai yang terkait dengan kunci "_id"
bertipe bson.ObjectId
yang hanya sebuah string
.
bson.M
adalah tipe map[string]interface{}
, jadi Anda memerlukan Ketik pernyataan
untuk mendapatkan id sebagai ObjectId
:
objid, ok := m["_id"].(ObjectId)
if !ok {
panic("Not ObjectId")
}
Dan ObjectId
memiliki ObjectId.Hex()
metode yang mengembalikan persis seperti yang Anda inginkan:id objek sebagai string hex "murni":
fmt.Println(objid.Hex())
Alternatif
objid
dapat dengan mudah dikonversi ke string
karena tipe dasarnya adalah string
. Jadi Anda dapat menggunakan sejumlah opsi lebih lanjut untuk mengubahnya menjadi string
hex :
hexid := fmt.Sprintf("%x", string(objid))
Kalau cuma mau print bisa langsung:
fmt.Printf("%x", string(objid))
Catatan: Mengubahnya menjadi string
penting lagi fmt
paket akan memanggil String()
metode yang menghasilkan string seperti ObjectIdHex("537f700b537461b70c5f0000")
dan inilah yang akan dikonversi ke hex yang jelas bukan yang Anda inginkan.
Alternatifnya Anda dapat menggunakan encoding/hex
paket dan hex.EncodeToString()
fungsi:
hexid := hex.EncodeToString([]byte(objid))