Sie verwenden entweder Collection.FindId()
und dann übergeben Sie nur den id-Wert oder Sie verwenden Collection.Find()
und dann müssen Sie auch einen Wert mit dem Feldnamen angeben:
err2 := c.FindId(bson.ObjectIdHex("58593d1d6aace357b32bb3a1")).One(&data)
// OR
err2 := c.Find(bson.M{"_id": bson.ObjectIdHex("58593d1d6aace357b32bb3a1")}).
One(&data)
Wenn Sie keine Fehler erhalten, bedeutet dies, dass das Dokument gefunden wurde.
Wenn Sie immer 0
sehen gedruckt (als Wert von id_cookie.IdCookie
Feld), das heißt, das Feld im Dokument, das diese ID enthält, hat einen anderen Namen.
Verwenden Sie Struktur-Tags, um anzugeben, wie es in Ihrer MongoDB gespeichert ist. Z.B. wenn es in Ihrer MongoDB "myid"
heißt , können Sie es wie folgt zuordnen:
type id_cookie struct {
IdCookie int `bson:"myid"`
}
Beachten Sie auch, dass Sie sich nicht jedes Mal mit dem MongoDB-Server verbinden sollten, wenn Sie einige Daten abfragen möchten, sondern nur einmal verbinden und die Sitzung einfach wiederverwenden sollten. Einzelheiten finden Sie unter:mgo - Abfrageleistung scheint durchgehend langsam (500-650 ms)