我正在尝试转换类型 primitive.ObjectID
至string
输入围棋。我正在使用 mongo-driver
来自 go.mongodb.org/mongo-driver
.
我尝试使用类型断言
mongoId := mongoDoc["_id"];
stringObjectID := mongoId.(string)
哪个 VSCode 接受。代码被编译,当它到达这个特定的代码行时,它会抛出这个错误panic: interface conversion: interface {} is primitive.ObjectID, not string
最佳答案
错误信息告诉 mongoDoc["_id"]
是 interface{}
类型它拥有 primitive.ObjectID
类型的值.这不是 string
,这是一个独特的类型。您只能键入断言 primitive.ObjectID
从接口(interface)值。
如果您想要 string
此 MongoDB ObjectId 的表示,您可以使用它的 ObjectID.Hex()
获取 ObjectId 字节的十六进制表示的方法:
mongoId := mongoDoc["_id"]
stringObjectID := mongoId.(primitive.ObjectID).Hex()
关于string - Primitive.ObjectID 到 Golang 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60864873/