Anda juga menggunakan Collection.FindId()
dan kemudian Anda hanya memberikan nilai id, atau Anda menggunakan Collection.Find()
dan kemudian Anda harus menentukan nilai dengan nama bidang juga:
err2 := c.FindId(bson.ObjectIdHex("58593d1d6aace357b32bb3a1")).One(&data)
// OR
err2 := c.Find(bson.M{"_id": bson.ObjectIdHex("58593d1d6aace357b32bb3a1")}).
One(&data)
Jika Anda tidak mendapatkan kesalahan, itu berarti dokumen telah ditemukan.
Jika Anda selalu melihat 0
dicetak (sebagai nilai id_cookie.IdCookie
field), itu berarti field dalam dokumen yang menyimpan id ini memiliki nama yang berbeda.
Gunakan tag struct untuk memberi tahu bagaimana itu disimpan di MongoDB Anda. Misalnya. jika di MongoDB Anda disebut "myid"
, Anda dapat memetakannya seperti ini:
type id_cookie struct {
IdCookie int `bson:"myid"`
}
Perhatikan juga bahwa Anda tidak boleh terhubung ke server MongoDB setiap kali Anda ingin menanyakan beberapa data, alih-alih sambungkan sekali, dan cukup gunakan kembali sesi. untuk detail lihat:mgo - kinerja kueri tampaknya lambat secara konsisten (500-650 md)