先看ObjectID转字符串(十六进制),这个简单:
func StrObjId(id primitive.ObjectID) string {
return id.Hex()
}
然后字符串(十六进制)就头疼了
查了百度、必应国内版,最后用英语在必应国际版上的一个小网站里面找到了解决方案,连官方文档都没提到这个函数:
func ObjIdStr(id string) interface{} {
result, err := primitive.ObjectIDFromHex(id)
if err != nil {
log.Println(err)
return nil
}
return result
}
当然,如果你不想在错误的时候返回nil,就可以直接写:
func ObjIdStr(id string) primitive.ObjectID {
result, err := primitive.ObjectIDFromHex(id)
if err != nil {
log.Println(err)
}
return result
}
上述方法需要额外引入模块:
“go.mongodb.org/mongo-driver/bson/primitive”