将字符串切片转换为BSON数组

时间:2018-10-08 15:27:25

标签: mongodb go type-conversion mongo-go

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

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

这会遍历我输入数据的每个元素,并尝试将其附加到BSON数组中。但是,带有Append()的行以panic: document is nil失败。我应该如何进行转换?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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