如何将mongo.InsertOneResult的InsertedID转换为[] byte

时间:2019-12-30 21:50:12

标签: mongodb go

您好,我正在努力将InsertOne()操作的InsertedID转换为字节片*。我正在使用此mongoDB客户端库https://github.com/mongodb/mongo-go-driver


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

res.InsertedID.([]byte)

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

  

panic:接口转换:interface {}是原始的。ObjectID,不是[] uint8

我也尝试过直接使用多个TypeAssertions或[]byte()函数,但是无法编译


在这种情况下,需要

* byte slice,因为我正在使用gRPC,这限制了我可以用于返回值的可能类型。

2 个答案:

答案 0 :(得分:1)

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

猜到你想要的

首先,您可以将InsertedID声明为native.ObjectID,然后转换为字符串或其他内容

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

答案 1 :(得分:1)

project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'androidx.core') { details.useVersion "1.0.1" } if (details.requested.group == 'androidx.lifecycle') { details.useVersion "2.0.0" } if (details.requested.group == 'androidx.versionedparcelable') { details.useVersion "1.0.0" } } } } InsertedID,即primitive.ObjectID。因此,您可以执行以下操作以获取字节片:

[12]byte