【问题标题】:Convert a string slice to a BSON array将字符串切片转换为 BSON 数组
【发布时间】:2019-03-13 07:38:48
【问题描述】:

我正在尝试使用 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 失败。我应该如何进行这种转换?

【问题讨论】:

标签: mongodb go type-conversion mongo-go


【解决方案1】:

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

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

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

【讨论】:

  • 这似乎不再起作用,您的 NewArray 链接只是转到文档页面的顶部。
【解决方案2】:

正如@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) {
  // ...
}

【讨论】:

    猜你喜欢
    • 2018-09-15
    • 2021-03-02
    • 2021-11-26
    • 2015-05-08
    • 2020-03-02
    • 1970-01-01
    • 2021-09-04
    • 2017-01-07
    • 1970-01-01
    相关资源
    最近更新 更多