Bạn sử dụng Collection.FindId()
và sau đó bạn chỉ chuyển giá trị id hoặc bạn sử dụng Collection.Find()
và sau đó bạn cũng phải chỉ định một giá trị với tên trường:
err2 := c.FindId(bson.ObjectIdHex("58593d1d6aace357b32bb3a1")).One(&data)
// OR
err2 := c.Find(bson.M{"_id": bson.ObjectIdHex("58593d1d6aace357b32bb3a1")}).
One(&data)
Nếu bạn không gặp lỗi, điều đó có nghĩa là tài liệu đã được tìm thấy.
Nếu bạn luôn thấy 0
được in (dưới dạng giá trị của id_cookie.IdCookie
trường), điều đó có nghĩa là trường trong tài liệu chứa id này có tên khác.
Sử dụng thẻ struct để cho biết cách nó được lưu trữ trong MongoDB của bạn. Ví dụ. nếu trong MongoDB của bạn, nó được gọi là "myid"
, bạn có thể lập bản đồ như thế này:
type id_cookie struct {
IdCookie int `bson:"myid"`
}
Cũng lưu ý rằng bạn không nên kết nối với máy chủ MongoDB mỗi khi bạn muốn truy vấn một số dữ liệu, thay vào đó hãy kết nối một lần và chỉ sử dụng lại phiên. để biết chi tiết, hãy xem:mgo - hiệu suất truy vấn dường như luôn chậm (500-650 mili giây)