登录
首页 >  Golang >  Go问答

将切片转换为 BSON 数组

来源:stackoverflow

时间:2024-03-07 15:00:26 334浏览 收藏

一分耕耘,一分收获!既然都打开这篇《将切片转换为 BSON 数组》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我正在尝试使用 go 将数组插入到 mongodb 实例中。我在 go 中有 [] string 切片,并希望将其转换为 bson 数组,以便使用 github.com/mongodb/mongo-go-driver 驱动程序将其传递给数据库。

var result bson.Array
    for _, data := range myData {
        value := bson.VC.String(data)
        result.Append(value)
}

这会循环输入数据的每个元素,并尝试将其附加到 bson 数组。但是,包含 append() 的行失败并显示 panic: document is nil。我应该如何进行此转换?


解决方案


编辑:问题中的代码和此答案不再相关,因为 bson.array 类型已从包中删除。在进行本次编辑时,应使用 bson.A 和基本切片操作来构造数组。

使用工厂函数NewArray创建数组:

result := bson.newarray()
for _, data := range mydata {
        value := bson.vc.string(data)
        result.append(value)
}

正如 @cerise bson 提到的。array 已被删除。我使用多个实用函数来执行此操作,如下所示:

func BSONStringA(sa []string) (result bson.A) {
  result = bson.A{}
  for_, e := range sa {
    result = append(result, e)
  }
  return
}

func BSONIntA(ia []string) (result bson.A) {
  // ...
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《将切片转换为 BSON 数组》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>