Можете или да използвате Collection.FindId()
и след това предавате само стойността на id или използвате Collection.Find()
и след това трябва да посочите стойност и с името на полето:
err2 := c.FindId(bson.ObjectIdHex("58593d1d6aace357b32bb3a1")).One(&data)
// OR
err2 := c.Find(bson.M{"_id": bson.ObjectIdHex("58593d1d6aace357b32bb3a1")}).
One(&data)
Ако не получавате грешки, това означава, че документът е намерен.
Ако винаги виждате 0
отпечатано (като стойността на id_cookie.IdCookie
поле), което означава, че полето в документа, съдържащо този идентификатор, има различно име.
Използвайте struct тагове, за да кажете как се съхранява във вашия MongoDB. напр. ако във вашия MongoDB се нарича "myid"
, можете да го картографирате по следния начин:
type id_cookie struct {
IdCookie int `bson:"myid"`
}
Също така имайте предвид, че не трябва да се свързвате със сървъра MongoDB всеки път, когато искате да заявите някои данни, вместо това се свържете веднъж и просто използвайте повторно сесията. за подробности вижте:mgo - производителността на заявката изглежда постоянно бавна (500-650 мс)