1

我正在尝试使用 Go 将数组插入到 MongoDB 实例中。我[] string在 Go 中有切片,并希望将其转换为数组以使用驱动程序将其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. 我应该如何进行这种转换?

4

3 回答 3

2

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

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

result := bson.NewArray()
for _, data := range myData {
        value := bson.VC.String(data)
        result.Append(value)
}
于 2018-10-08T15:30:27.727 回答
1

正如@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) {
  // ...
}
于 2019-12-18T06:09:42.217 回答
0

将一段字符串 ( ids) 转换为 BSON 数组

var objIds bson.A
for _, val := range ids {
    objIds = append(objIds, val)
}
log.Println(objIds)
于 2022-02-20T07:56:32.573 回答