sql >> Databasteknik >  >> NoSQL >> MongoDB

Hitta efter id med mgo

Du använder antingen Collection.FindId() och sedan skickar du bara id-värdet, eller så använder du Collection.Find() och sedan måste du ange ett värde med fältnamnet också:

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

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

Om du inte får några fel, betyder det att dokumentet hittas.

Om du alltid ser 0 skrivs ut (som värdet på id_cookie.IdCookie fält), det betyder att fältet i dokumentet som innehåller detta ID har ett annat namn.

Använd struct-taggar för att berätta hur det lagras i din MongoDB. T.ex. om det i din MongoDB heter "myid" , du kan mappa det så här:

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

Observera också att du inte ska ansluta till MongoDB-servern varje gång du vill fråga data, istället ansluta en gång och bara återanvända sessionen. för detaljer se:mgo - frågeprestanda verkar konsekvent långsam (500-650 ms)




  1. Rails + MongoMapper + EmbeddedDocument blanketthjälp

  2. MongoDB - Uppdatera ett dokument

  3. Fatalt fel - "Mongo"-klassen hittades inte

  4. Meteor.js distribueras till example.com eller www.example.com?