sql >> Base de Datos >  >> NoSQL >> MongoDB

Buscar por id con mgo

O usas Collection.FindId() y luego pasa solo el valor de identificación, o usa Collection.Find() y luego debe especificar un valor con el nombre del campo también:

err2 := c.FindId(bson.ObjectIdHex("58593d1d6aace357b32bb3a1")).One(&data)

// OR
err2 := c.Find(bson.M{"_id": bson.ObjectIdHex("58593d1d6aace357b32bb3a1")}).
    One(&data)

Si no obtiene errores, significa que se encontró el documento.

Si siempre ves 0 impreso (como el valor de id_cookie.IdCookie field), eso significa que el campo en el documento que contiene esta identificación tiene un nombre diferente.

Use etiquetas de estructura para indicar cómo se almacena en su MongoDB. P.ej. si en tu MongoDB se llama "myid" , puedes mapearlo así:

type id_cookie struct {
    IdCookie int `bson:"myid"`
}

También tenga en cuenta que no debe conectarse al servidor MongoDB cada vez que desee consultar algunos datos, sino que debe conectarse una vez y simplemente reutilizar la sesión. para obtener más información, consulte:mgo:el rendimiento de las consultas parece constantemente lento (500-650 ms)