Puoi utilizzare Collection.FindId()
e poi passi solo il valore id, oppure usi Collection.Find()
e poi devi specificare un valore anche con il nome del campo:
err2 := c.FindId(bson.ObjectIdHex("58593d1d6aace357b32bb3a1")).One(&data)
// OR
err2 := c.Find(bson.M{"_id": bson.ObjectIdHex("58593d1d6aace357b32bb3a1")}).
One(&data)
Se non ricevi errori, significa che il documento è stato trovato.
Se vedi sempre 0
stampato (come il valore di id_cookie.IdCookie
campo), ciò significa che il campo nel documento che contiene questo ID ha un nome diverso.
Usa i tag struct per dire come è archiviato nel tuo MongoDB. Per esempio. se nel tuo MongoDB si chiama "myid"
, puoi mapparlo in questo modo:
type id_cookie struct {
IdCookie int `bson:"myid"`
}
Nota anche che non dovresti connetterti al server MongoDB ogni volta che vuoi interrogare alcuni dati, invece connettiti una volta e riutilizza semplicemente la sessione. per i dettagli, vedere:mgo - le prestazioni della query sembrano costantemente lente (500-650 ms)