登录
首页 >  Golang >  Go问答

如何将 mongo.InsertOneResult 中的 InsertedID 转换为字节数组

来源:stackoverflow

时间:2024-02-20 23:51:25 423浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《如何将 mongo.InsertOneResult 中的 InsertedID 转换为字节数组》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

大家好,我正在努力将 insertone() 操作的 insertedid 转换为字节切片*。我正在使用这个 mongodb 客户端库 https://github.com/mongodb/mongo-go-driver

到目前为止,我已经尝试像这样直接使用 typeassertion:

res.InsertedID.([]byte)

可以编译,但在断言期间会导致以下错误:

恐慌:接口转换:接口{}是primitive.objectid,而不是[]uint8

我还尝试直接使用多个 typeassertions 或 []byte() 函数,但无法编译

*在这种情况下需要字节切片,因为我使用的是 grpc,这限制了我可以用于返回值的可能类型。


解决方案


insertedidprimitive.objectid,即 [12]byte。所以你可以这样做来获得一个字节切片:

oid:=res.insertedid.(primitive.objectid)
slice:=oid[:]

https://godoc.org/go.mongodb.org/mongo-driver/bson/primitive#ObjectID

我猜这就是你想要的

首先,您可以将 insertedid 断言为 primitive.objectid,然后转换为字符串或其他内容

res.InsertedID.(primitive.ObjectID).String()
res.InsertedID.(primitive.ObjectID).Hex()

好了,本文到此结束,带大家了解了《如何将 mongo.InsertOneResult 中的 InsertedID 转换为字节数组》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>