MongoDB GoLang 字符串与ObjectID相互转换


先看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”

方法来源:
https://kb.objectrocket.com/mongo-db/how-to-find-a-mongodb-document-by-its-bson-objectid-using-golang-452