sql >> Database >  >> NoSQL >> MongoDB

mongodb-go-driver/bson struct naar bson.Documentcodering

Helaas wordt dit momenteel niet ondersteund.

U kunt een helperfunctie maken die een struct-waarde "converteert" naar een bson.Document zoals dit:

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

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

Dan kan het als volgt worden gebruikt:

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)),
)

Hopelijk ElementConstructor.Interface() zal in de toekomst verbeteren en het mogelijk maken om structwaarden of verwijzingen door te geven om waarden direct te structureren.




  1. Hoe kom ik erachter of Mongodb in auth-modus in shellscript wordt uitgevoerd?

  2. Wat is een schone manier om mongod te stoppen op Mac OS X?

  3. Hoe de structuur van MongoDB's kaartverminderende resultaten veranderen?

  4. Bij het maken van de eerste admin-gebruiker op het mongdb-cluster kon de fout niet worden toegevoegd:niet geautoriseerd door de beheerder om de opdracht uit te voeren