防止 bson.ObjectIdHex 中的运行时恐慌

2023-12-26

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

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

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

我怎样才能防止这种情况发生?谢谢


bson.ObjectIdHex() https://godoc.org/github.com/globalsign/mgo/bson#ObjectIdHex文档表明,如果您传递无效的对象 ID,它将出现恐慌:

ObjectIdHex 从提供的十六进制表示形式返回一个 ObjectId。使用无效的十六进制表示调用此函数将导致运行时恐慌。请参阅 IsObjectIdHex 函数。

如果您想避免这种情况,请首先使用检查您的输入字符串bson.IsObjectIdHex() https://godoc.org/github.com/globalsign/mgo/bson#IsObjectIdHex,并且只继续调用bson.ObjectIdHex()如果您的输入有效:

if bson.IsObjectIdHex(obid[0]) {
    // It's valid, calling bson.ObjectIdHex() will not panic...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止 bson.ObjectIdHex 中的运行时恐慌 的相关文章

  • 当涉及多个渠道时,select 如何工作?

    我发现在多个非缓冲通道上使用 select 时 例如 select case lt chana case lt chanb 即使两个通道都有数据 但在处理此选择时 case chana 和 case chanb 的跟注不平衡 package
  • 使用mongoid动态创建索引

    我有一项为我的文档创建新字段的工作 我想在这项工作结束时创建该字段的索引 我试过 Model index field gt 1 and also Mongoid Sessions default rating prediction ensu
  • 使用 Javascript 和 Mongodb 对时间序列数据重新采样

    时间序列数据的数据集需要从具有不规则时间间隔的数据集转换为规则时间序列 可能使用插值和重采样 蟒蛇的pandas Dataframe resample http pandas pydata org pandas docs stable ge
  • 在 Windows 7 - 64 位上安装 Mongodb

    我是 mongodb 的新手 不知道如何安装它 因为我找不到视频或任何有用的资源来实现相同的目的 请帮助我在 Windows 7 上安装 mongodb 并提供确切的步骤 我尝试从该网站下载最新版本的 mongodb 但不成功 提前致谢 R
  • 如何在 MongoDB v3.0.5 中创建用户

    我需要在 mongodb 中为我的数据库创建一个用户 但似乎我无法让它工作 我已经在我的 Windows 7 机器上安装了 mongoDb v3 0 5 根据本文 https docs mongodb org v3 0 tutorial a
  • 我如何在 mongodb 的数组中找到文本搜索

    id objectId 23651478 name Tomatos array title Vegetables description Vegitables are good to health id objectId 45761244
  • 如何解析 Content-Disposition 标头以检索文件名属性?

    使用 go 如何解析从 http HEAD 请求检索到的 Content Disposition 标头以获取文件的文件名 此外 如何从 http HEAD 响应中检索标头本身 这样的事情正确吗 resp err http Head http
  • for 循环初始值设定项中的结构

    知道为什么 for 循环初始值设定项中的这个结构表达式在编译时会出现语法错误吗 在这种情况下 指向结构的指针工作正常 但 ofc 我需要如下所示的局部变量 感谢您的建议 type Request struct id int line byt
  • 如何在 Mongoose 中执行查找查询?

    我在 mongodb 中有一组电子书数据 例如 id ObjectId 58b56fe19585b10cd42981d8 cover path D Ebooks uploads ebooks cover 1488285665748 img1
  • Mongoid 命名范围比较同一文档中的两个时间字段

    我需要在 Mongoid 中创建一个命名范围来比较同一文档中的两个时间字段 例如 scope foo where gt updated at gt gt checked at 这显然不会像它对待的那样起作用 checked at作为一个符号
  • Node.js 重用 MongoDB 参考

    我无法理解 Node js 例如 MongoDB 访问 这是我得到的 mydb js var mongodb require mongodb server new mongodb Server staff mongohq com 10030
  • 如何将UTC时间转换为unix时间戳

    我正在寻找将 UTC 时间字符串转换为 unix 时间戳的选项 我的字符串变量是02 28 2016 10 03 46 PM并且需要将其转换为 unix 时间戳 例如1456693426 知道该怎么做吗 首先 unix时间戳14566934
  • Mongo按动态字段排序

    所以我传入了一个动态变量 它是我想要排序的字段的名称 假设下面的 sortVariable 可能等于 price createdAt name 等 这不起作用 我该怎么做 function findStuff sortVariable va
  • 匿名结构和空结构

    http play golang org p vhaKi5uVmm http play golang org p vhaKi5uVmm package main import fmt var battle make chan string
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 为什么 Go 禁止取 (&) 映射成员的地址,却允许取 (&) 切片元素?

    Go 不允许获取地图成员的地址 if I do this p mm abc Syntax Error cannot take the address of mm abc 理由是 如果 Go 允许使用此地址 那么当地图后台存储增长或缩小时 该
  • Angular js 服务器端过滤器和分页

    我有几个输入字段 我们可以使用带有搜索名称的输入字段作为示例 当有人在该字段中输入内容时 我希望能够过滤对象的结果 但我想做过滤器服务器端而不是客户端 我有一个包含大量记录的数据库 因此我不想返回所有记录并在客户端进行过滤 这确实会减慢速度
  • 如何在 mongodb 聚合管道中使用 Javascript 对象?

    我有一个 JS 对象norm我想在 mongo 聚合管道中使用它 如下所示 var norm 1 1 2 1 16 3 1 413 4 1 622 5 1 6 6 1 753 7 3 001 8 2 818 9 3 291 10 2 824
  • 按一个字段聚合,选择另一个字段最大值的文档作为集合

    使用聚合框架 获取每个分组的字段最大值的文档的最佳方法是什么 因此使用下面的集合 我希望具有为每个具有最新日期的 group id 返回一个文档的功能 第二个清单显示了所需的结果 group id date 1 11 1 12 1 11 2

随机推荐

  • 按年龄对某个范围内的用户进行分组

    我有一些数据需要进行一些统计 我需要按年龄对用户进行分组 var byAge displayResult GroupBy x gt x Age 我可以按照上面的方法做 然而 这给了我 19 20 21 等年龄 我想要的是按 10 岁对年龄进
  • 使用 REST API 创建项目后,将用户作为管理员分配给项目 - Azure DevOps

    我正在尝试将用户分配为项目的管理员 并通过 Azure DevOps 中的 REST API 更改所有者 你们中的任何人都可以向我指出一些如何完成此操作的文档吗 我已经查看了 UserEntitlements API 和 Project A
  • 重试 HTTP(S) POST,直到在 Android 上成功

    我有一些数据将通过 http s 从 Android 应用程序发送到服务器 需要按顺序发送 是否已经存在一种对 http 请求进行排队 针对同一服务器 并重试它们直到完成 不一定成功 的方法 我的问题是如果没有网络覆盖 http请求可能会失
  • 如何更改C# Winform中文本框中某些子字符串的字体颜色?

    如果我想将文本文件上传到文本框中并希望通过字体颜色更改突出显示某些单词 我知道我需要编写TextBox ForeColor Color SomeColor 但如果我想要那个并非所有文本都会出现在same color 只有一些子串 我怎样才能
  • 在 ASP.NET 中拉取多个记录集时的 DataReader 或 DataSet

    我有一个 ASP NET 页面 其中有一堆需要填充的控件 例如下拉列表 我想单次访问数据库并带回多个记录集 而不是为每个控件进行往返 我可以带回 DataSet 中的多个表 或者可以带回 DataReader 并使用 NextResult
  • 为什么SIGPIPE存在?

    据我了解 SIGPIPE只能作为以下结果发生write 它可以 并且确实 返回 1 并设置errno to EPIPE 那么为什么我们会有额外的信号开销呢 每次我使用管道时我都会忽略SIGPIPE并且从未因此感到任何疼痛 我是否错过了什么
  • onDraw() 没有被调用

    我正在修复某人的 Android 应用程序 它最初是为 2 1 制作的 我正在努力让它工作到 4 0 不幸的是 制作该应用程序的人不在身边 所以我只能使用他的代码 该应用程序实现了自定义滑块 水平和垂直 我固定了垂直滑块 但无法使水平滑块工
  • 如何在非主线程中获取剪贴板数据?

    我正在尝试使用以下代码从剪贴板获取数据 private void TestBtn Click object sender EventArgs e Thread sampleThread new Thread SampleMethod sam
  • 如何通过 Google Sheets API 更新多个单元格?

    我正在尝试更新并从谷歌表格中获取一些结果 它正在工作但速度很慢 我需要batchUpdate并获取数据 这是我的脚本 foreach import cels as celu gt valoare range ins celu valueRa
  • 使用渐变但不混合颜色

    我不知道这是一个愚蠢的问题还是类似的问题 但我想要一个div用一种颜色填充一定比例 其余部分用另一种颜色填充 以及梯度属性 div background linear gradient to right 000 50 fff 50 Resu
  • Unicode 中为什么会有重复的字符?

    我可以看到一些重复的字符Unicode http en wikipedia org wiki Unicode 例如 字符 C 可以由代码点 U 0043 和 U 0421 表示 为什么会这样呢 正如其他人所指出的 您在这里的主要谬误是混淆了
  • ManualResetEvent WaitOne 阻止我的 CollectionView 的所有者线程

    我编写了一个 WPF WizardFramework 它使用一些在后台执行一些操作BackgroundWorker 在处理时可能会发生我必须更新ObservableCollection这与我的用户界面绑定 对于这种情况我写了一个Thread
  • JavaFX 上 Canvas.snapshot() 的替代方案

    我正在开发一个小型图形引擎Canvas在JavaFX中 在某些时候 我必须渲染离屏图像 然后使用其将其打印在我的主画布上GraphicContext 我现在正在使用这段代码 private Canvas offScreenCanvas pr
  • 为什么我可以在循环中创建多个同名实例?

    我不明白为什么会这样 我希望有人能向我解释一下 这是一个例子 TestObject array new TestObject 10 for int i 0 i lt 10 i TestObject object new TestObject
  • stdout 和 STDOUT_FILENO 有什么区别?

    我想知道两者之间的区别stdout and STDOUT FILENO在Linux C中 经过一番研究 我得出以下理解 stdout属于C语言的标准I O流 其类型为FILE 并定义在stdio h STDOUT FILENO is an
  • 将用户权限限制为仅对某一特定数据库

    PostgreSQL 版本 9 1 我使用默认用户登录数据库 postgres 我的数据库包含默认角色 public 我拥有的数据库列表 1 数据库1 2 数据库2 3 数据库3 现在 我需要创建一个用户 newuser 该用户仅具有 da
  • 为什么“numpy.mean”返回“inf”?

    我需要计算超过 1000 行的数组的列平均值 np mean some array 给我inf作为输出 但我很确定这些值没问题 我正在加载 csvhere http www bliasoft com Documents DataConcre
  • 动态更改 Ionic 菜单侧

    我试图在用户更改语言后动态更改 Ionic 3 菜单侧 对于 RTL 语言 菜单需要位于右侧 默认情况下它设置在左侧 我订阅TranslateService from ngx translate core语言改变时的事件app compon
  • 最大 CGFloat 值是否有一个常数?

    我需要创建一个 CGSize 来计算任意长度的任意文本的文本高度 UIKit 有一个很好的方法 sizeWithFont constrainedToSize 并且我的文本仅受宽度限制 但不受高度限制 为此 我需要设置高度的最大可能 CGFl
  • 防止 bson.ObjectIdHex 中的运行时恐慌

    我正在尝试使用 mgo 将 objectid 字符串转换为 bson ObjectId 格式 errCheck d C col FindId bson ObjectIdHex obid 0 One Result 我不知道为什么 但如果我给出