string - Primitive.ObjectID 到 Golang 中的字符串

标签 string mongodb go objectid mongo-go

我正在尝试转换类型 primitive.ObjectIDstring输入围棋。我正在使用 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/

相关文章:

go - 将一片结构保存到 Cloud Datastore(Datastore 模式下的 Firestore)中的正确方法是什么?

docker - 程序干净退出,但 kubernetes 处于 CrashLoopBackOff 中

java - 检查字符串是否有大量不同的增量值

mongodb 在 commitTransaction 失败后我需要一个 abortTransaction 吗?

go - 如何使用 go modules 删除已安装的包

node.js - 如何使用 Mongoose 删除中间件进行级联删除?

php - : sudo pecl install mongodb 时出现 fatal error

java - 如何在 Java 中比较字符串?

c# - 如何将字符串中单词之间的每个数字作为单独的值进行替换

校验和与串口通信