sql >> Databasteknik >  >> NoSQL >> MongoDB

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

Tyvärr stöds inte detta för närvarande.

Du kan skapa en hjälpfunktion som "konverterar" ett strukturvärde till ett bson.Document så här:

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

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

Då kan den användas så här:

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

Förhoppningsvis ElementConstructor.Interface() kommer att förbättras i framtiden och tillåta att skicka strukturvärden eller pekare för att strukturera värden direkt.




  1. MongoDB Visa aktuell användare

  2. Multi-Tenant Rails 3-appen på Heroku med PostgreSQL

  3. Hur använder man redis för att lagra hierarkisk data?

  4. Inbyggt förarfynd från Mongoose-modellen returnerar inte markören