MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mit mgo nach ID suchen

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)