mongo_open 和 mongo_shell() 数据库链接失败没有报错,而是直接返回 null
${ipport} 参数
[“127.0.0.1:27029/8a9e232962fcf6cc016324ed2ada”,“127.0.0.1:27027/8a9e232962fcf6cc016324ed2ada”,“127.0.0.1:27028/8a9e232962fcf6cc016324ed2ada”,“127.0.0.1:27020/8a9e232962fcf6cc016324ed2ada”]
27020 端口是正常开放的,mongodb 启动。
上面 27029、27027、27028 端口都是关闭的,mongodb 没有启动,程序返回的是 null,没有对外报错。如果直接使用 mongodb 的 java 驱动程序会报错链接超时。
因为 mongodb 进行了分库处理,query 是从 4 个 mongodb 获取数据,然后把 4 个 mongodb 的数据组装返回,上面的情况会返回数据(部分数据,这是不对的)。
如果 27029、27027、27028 端口都是关闭的,执行 mongodb 语句的话直接报错,这样的话我很快定位到问题。如果返回 null,还需要排查查询条件等各个环节。
希望集算器帮助我解决上面的问题
mongo_open 这个方法增加一个类似 connect 方法的 @e 参数。用户自己可以控制报错信息。
如果不支持,我只能自己去下载 mongodb 外部库的代码,自己去修改这里的逻辑,带来的问题是集算器每次版本升级的时候,我都需要慎重比对代码。
在 mongo_shell 上 (非 mongo_open 上) 增加了 @e,错误时返回{error:errorInfo},没有 @e 时,抛出异常中断
mongo_open() 时增加判断连接是否有效。
帮助文档没有 @e 的选项?