sql >> Database >  >> NoSQL >> MongoDB

Zoek op id met mgo

U gebruikt ofwel Collection.FindId() en dan geef je alleen de id-waarde door, of je gebruikt Collection.Find() en dan moet je ook een waarde opgeven met de veldnaam:

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

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

Als u geen fouten krijgt, betekent dit dat het document is gevonden.

Als je altijd 0 . ziet afgedrukt (als de waarde van de id_cookie.IdCookie veld), wat betekent dat het veld in het document met deze id een andere naam heeft.

Gebruik struct-tags om te vertellen hoe het is opgeslagen in uw MongoDB. bijv. als het in je MongoDB "myid" wordt genoemd , kunt u het als volgt in kaart brengen:

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

Houd er ook rekening mee dat u niet elke keer verbinding moet maken met de MongoDB-server als u bepaalde gegevens wilt opvragen, maar één keer verbinding moet maken en de sessie opnieuw moet gebruiken. zie voor details:mgo - queryprestaties lijken constant traag (500-650 ms)




  1. MongoDB-normalisatie, externe sleutel en samenvoegen

  2. $filter binnen $project MongoDB Spring Data gebruiken

  3. MongoDB werkt niet. FOUT:dbpath (/data/db) bestaat niet.

  4. Aggregate $lookup retourneert de oorspronkelijke arrayvolgorde van elementen niet