sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb-go-driver/bson struct til bson.Dokumentkodning

Desværre er dette ikke understøttet i øjeblikket.

Du kan oprette en hjælpefunktion, som "konverterer" en strukturværdi til en bson.Document sådan her:

func toDoc(v interface{}) (doc *bson.Document, err error) {
    data, err := bson.Marshal(v)
    if err != nil {
        return
    }

    err = bson.Unmarshal(data, &doc)
    return
}

Så kan den bruges sådan her:

partialUpdate := &NoteUpdate{
    Title: "Some new title",
}

doc, err := toDoc(partialUpdate)
// check error

res := c.FindOneAndUpdate(
    context.Background(),
    bson.NewDocument(bson.EC.String("_id", "some-note-id")),
    bson.NewDocument(bson.EC.SubDocument("$set", doc)),
)

Forhåbentlig ElementConstructor.Interface() vil forbedres i fremtiden og tillade videregivelse af struct-værdier eller pointere til struct-værdier direkte.




  1. Læsning og visning af billeder fra mongoDB ved hjælp af GridFs

  2. Forstå ændringerne i MongoDB ny C#-driver (Async og Await)

  3. Brug af lagrede JavaScript-funktioner i Aggregation-pipelinen, MapReduce eller runCommand

  4. Ordbog<streng, objekt>-til-BsonDokument-konvertering uden _t-felt