Rất tiếc, điều này hiện không được hỗ trợ.
Bạn có thể tạo một hàm trợ giúp "chuyển đổi" giá trị struct thành bson.Document
như thế này:
func toDoc(v interface{}) (doc *bson.Document, err error) {
data, err := bson.Marshal(v)
if err != nil {
return
}
err = bson.Unmarshal(data, &doc)
return
}
Sau đó, nó có thể được sử dụng như thế này:
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)),
)
Hy vọng rằng ElementConstructor.Interface ()
sẽ cải thiện trong tương lai và cho phép chuyển trực tiếp các giá trị hoặc con trỏ cấu trúc đến các giá trị cấu trúc.