首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将primitive.D文本(类型primitive.D)用作切片文本中的类型primitive.E

不能将primitive.D文本(类型primitive.D)用作切片文本中的类型primitive.E
EN

Stack Overflow用户
提问于 2020-04-24 23:03:15
回答 1查看 1.6K关注 0票数 0

我正在尝试将切片推送到我的MongoDB数据库。我尝试推送的数据是一个具有以下字段的结构:

代码语言:javascript
复制
type GroupMember struct {
    GroupID   string `json:"group_id" bson:"group_id"`
    Children  []string `json:"children" bson:"children"`
}

基本上,我向Children切片添加元素(如果为nil,则初始化它),设置GroupID,然后需要将更新后的数据推送到MongoDB。我尝试过以下几种方法:

代码语言:javascript
复制
_, 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实例。然而,我总是遇到这样的错误:

代码语言:javascript
复制
cannot use primitive.D literal (type primitive.D) as type primitive.E in slice literal

根据我在网上读到的内容,我尝试了不同的方法来做这件事,但我不确定准备一个切片作为bson上传的正确方法是什么。根据MongoDB文档,bson.A是相当于数组的bson,所以我尝试用bson.A{}包装数据,但得到了相同的错误。如果有任何帮助,我将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-24 23:15:21

更新文档的格式不正确。试着这样做:

代码语言:javascript
复制
bson.M{"$set":bson.M{"group_id":dbu.GroupID,"children": dbu.Children}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61411392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档