将字符串切片转换为 BSON 数组
Convert a string slice to a BSON array
我正在尝试使用 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) {
// ...
}
将一段字符串 (ids
) 转换为 BSON 数组
var objIds bson.A
for _, val := range ids {
objIds = append(objIds, val)
}
log.Println(objIds)
我正在尝试使用 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) {
// ...
}
将一段字符串 (ids
) 转换为 BSON 数组
var objIds bson.A
for _, val := range ids {
objIds = append(objIds, val)
}
log.Println(objIds)