不能在切片文字中使用 primitive.D 文字(类型 primitive.D)作为类型 primitive.E
cannot use primitive.D literal (type primitive.D) as type primitive.E in slice literal
我正在尝试将切片推送到我的 MongoDB 数据库。我尝试推送的数据是一个包含以下字段的结构:
type GroupMember struct {
GroupID string `json:"group_id" bson:"group_id"`
Children []string `json:"children" bson:"children"`
}
基本上,我将元素添加到我的 Children
切片(如果为 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}}
我正在尝试将切片推送到我的 MongoDB 数据库。我尝试推送的数据是一个包含以下字段的结构:
type GroupMember struct {
GroupID string `json:"group_id" bson:"group_id"`
Children []string `json:"children" bson:"children"`
}
基本上,我将元素添加到我的 Children
切片(如果为 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}}