MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Localizar por id com mgo


Você pode usar Collection.FindId() e então você passa apenas o valor do id ou usa Collection.Find() e então você tem que especificar um valor com o nome do campo também:
err2 := c.FindId(bson.ObjectIdHex("58593d1d6aace357b32bb3a1")).One(&data)

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

Se você não receber nenhum erro, isso significa que o documento foi encontrado.

Se você sempre vê 0 impresso (como o valor do id_cookie.IdCookie field), isso significa que o campo no documento que contém esse id tem um nome diferente.

Use tags struct para informar como ele é armazenado em seu MongoDB. Por exemplo. se no seu MongoDB é chamado "myid" , você pode mapeá-lo assim:
type id_cookie struct {
    IdCookie int `bson:"myid"`
}

Observe também que você não deve se conectar ao servidor MongoDB toda vez que quiser consultar alguns dados, em vez disso, conecte-se uma vez e apenas reutilize a sessão. para obter detalhes, consulte:mgo - o desempenho da consulta parece consistentemente lento (500-650ms)