String Primitive.ObjectID到Golang中的字符串

String Primitive.ObjectID到Golang中的字符串,string,mongodb,go,objectid,mongo-go,String,Mongodb,Go,Objectid,Mongo Go,我正在尝试将typeprimitive.ObjectID转换为Go中的string类型。我正在使用go.mongodb.org/mongo-driver中的mongo-driver 我试着像这样使用类型断言 mongoId := mongoDoc["_id"]; stringObjectID := mongoId.(string) VSCode接受的。代码被编译,当它到达这个特定的代码行时,它抛出这个错误 panic: interface conversion: inter

我正在尝试将type
primitive.ObjectID
转换为Go中的
string
类型。我正在使用
go.mongodb.org/mongo-driver
中的
mongo-driver

我试着像这样使用类型断言

mongoId := mongoDoc["_id"];
stringObjectID := mongoId.(string)
VSCode接受的。代码被编译,当它到达这个特定的代码行时,它抛出这个错误

panic: interface conversion: interface {} is primitive.ObjectID, not string

错误消息告诉
mongoDoc[“_id”]
的类型为
interface{}
,它保存类型为的值。这不是
字符串
,而是一种独特的类型。只能从接口值中键入assert
primitive.ObjectID

如果需要此MongoDB ObjectId的
字符串
表示形式,可以使用其方法获取ObjectId字节的十六进制表示形式:

mongoId := mongoDoc["_id"]
stringObjectID := mongoId.(primitive.ObjectID).Hex()

如果不告诉我们如何定义
primitive.ObjectID
,就无法告诉您如何将
primitive.ObjectID
转换为字符串;并出现在切片数组中,切片数组的定义如下:var mapArray[]bson.M函数循环通过该切片数组来扫描_id,如上文所述。mongoDoc是一个类型为bson的mongo文档。请用这些信息更新问题。非常感谢。你救了我的命。它起了神奇的作用。再次感谢
var stringObjectId string = mongoId.(primitive.ObjectID).String()