mongodb - 防止 bson.ObjectIdHex 中的运行时 panic

标签 mongodb go bson mgo

我正在尝试使用 mgo 将 objectid 字符串转换为 bson ObjectId 格式,

errCheck := d.C("col").FindId(bson.ObjectIdHex(obid[0])).One(&Result)

我知道为什么,但是如果我给出错误/无效的输入字符串,我的应用程序就会出现运行时错误

我该如何预防?谢谢

最佳答案

bson.ObjectIdHex()记录如果你传递一个无效的对象 ID 它将 panic :

ObjectIdHex returns an ObjectId from the provided hex representation. Calling this function with an invalid hex representation will cause a runtime panic. See the IsObjectIdHex function.

如果你想避免这种情况,首先使用 bson.IsObjectIdHex() 检查你的输入字符串,并且仅在您的输入有效时才继续调用 bson.ObjectIdHex():

if bson.IsObjectIdHex(obid[0]) {
    // It's valid, calling bson.ObjectIdHex() will not panic...
}

关于mongodb - 防止 bson.ObjectIdHex 中的运行时 panic ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53701764/

相关文章:

javascript - "Exited with code 8" meteor 应用示例

go - 如何在 Golang 中快速找到接口(interface)的实现?

http - Golang网拨用户:pass@ip:port gives: no such host

mongodb - 动态模式的 Hive 表创建

java - 使用 Kaitai Struct 解析操作码

node.js - 是否可以将自动搜索字段从硬编码 'suggestions' 更改为数据库中的数据?

python - 根据时间戳选择并用零更新时间戳

c# - MongoDb 驱动程序未插入整个对象

go - 单例实例不断在 Go 中创建新实例

javascript - 使用 mongorestore 将许多文档插入临时集合