sql >> Databáze >  >> NoSQL >> MongoDB

mongodb-go-driver/bson struct na bson.Kódování dokumentu

Bohužel to v současné době není podporováno.

Můžete vytvořit pomocnou funkci, která „převede“ hodnotu struct na bson.Document." takhle:

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

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

Pak jej lze použít takto:

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

Doufejme, že ElementConstructor.Interface() se v budoucnu zlepší a umožní předávání hodnot struct nebo ukazatelů na přímé strukturování hodnot.




  1. Vložit objekt do pole, pokud pole existuje, jinak pole vytvořte s objektem v MongoDB

  2. Python &Redis:Osvědčené postupy aplikací pro manažery/pracovníky

  3. redis-cli přesměrován na 127.0.0.1

  4. Jak zkontrolovat, zda je pole pole součástí jiného pole v MongoDB?