MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Trova per ID con mgo

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)