我试图将一个切片推送到我的MongoDB数据库。我试图推送的数据是一个包含以下字段的结构。
type GroupMember struct {
GroupID string `json:"group_id" bson:"group_id"`
Children []string `json:"children" bson:"children"`
}
基本上,我将元素添加到我的 Children
slice(如果是nil,则初始化它),设置我的 GroupID
然后需要将更新后的数据推送到MongoDB。我已经尝试了以下方法。
_, err = uc.UpdateOne(ctx, bson.M{"_id": dbu.ID}, bson.D{{"$set", bson.D{{"group_id", dbu.GroupID}}}, bson.D{{"$set", bson.D{{"children", dbu.Children}}}}})
其中 dbu
是一个 GroupMember
实例。然而,我一直遇到这个错误。
cannot use primitive.D literal (type primitive.D) as type primitive.E in slice literal
我试着用不同的方法来解决这个问题 根据我在网上读到的资料 但我不确定正确的方法是什么 把一个片子准备好上传为 bson
. 根据MongoDB的文档。bson.A
相当于一个数组的 bson,所以我尝试用 bson.A{}
但我得到同样的错误。我将感激任何帮助
更新文档的格式不完善。试试这个。
bson.M{"$set":bson.M{"group_id":dbu.GroupID,"children": dbu.Children}}