MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Dapatkan nilai ObjectIdHex dari kueri mgo

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))



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sisipkan bidang dengan ukuran array di mongo

  2. Basis data MongoDB dihapus secara otomatis

  3. Kueri MongoDB dengan kondisi 'atau'

  4. Iris dengan Proyeksi dengan C#

  5. Pymongo API TypeError:Dikte yang tidak dapat dihash