दुर्भाग्य से यह वर्तमान में समर्थित नहीं है।
आप एक सहायक फ़ंक्शन बना सकते हैं जो एक स्ट्रक्चर मान को bson.Document
इस तरह:
func toDoc(v interface{}) (doc *bson.Document, err error) {
data, err := bson.Marshal(v)
if err != nil {
return
}
err = bson.Unmarshal(data, &doc)
return
}
फिर इसे इस तरह इस्तेमाल किया जा सकता है:
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)),
)
उम्मीद है कि ElementConstructor.Interface()
कोड>
भविष्य में सुधार करेगा और स्ट्रक्चर वैल्यू या पॉइंटर्स को सीधे स्ट्रक्चर वैल्यू में पास करने की अनुमति देगा।