【问题标题】:MongoDB does not connect with options parameterMongoDB 不连接选项参数
【发布时间】:2014-02-21 15:52:34
【问题描述】:

我正在尝试连接选项参数,但它没有连接

try
  { 
    $connection_url = "mongodb://{$dbuser}:{$dbpass}@{$dburl}:{$dbport}/{$dbname}";
    $m = new MongoClient($connection_url, 
                          array('connectTimeoutMS'=>30000,
                                'socketTimeoutMS'=>30000)
                       );

   }
   catch ( MongoConnectionException $e ) 
   {
     echo $e->getMessage();

   }
   catch ( MongoException $e ) 
   {
     echo $e->getMessage();
   } 
   catch ( Exception $e ) 
   {
     echo $e->getMessage();
   }

此代码只是进入异常而没有任何消息。

如果我删除选项参数,它会连接到 mongodb 服务器。

为什么不连接参数选项?

如果我用另一种方式传递options参数

$connection_url = "mongodb://{$dbuser}:{$dbpass}@{$dburl}:{$dbport}
                 /{$dbname}?connectTimeoutMS=30000&socketTimeoutMS=30000";
$m = new MongoClient($connection_url);

它通过错误

'MongoConnectionException' 带有消息'- 发现未知连接 字符串选项“connectTimeoutMS”,值为“>30000”

这两种方法都不能使用 options 参数。

Mongodb 在 mongohq.com

【问题讨论】:

  • 什么是异常类型?它应该有一个类型
  • MongoConnectionException
  • 我想知道 mongohq 是否可以这样做。我从未使用过connectTimeoutMS,所以我实际上并不知道它的超时限制是多少

标签: php mongodb mongohq


【解决方案1】:

这实际上在 MongoClient 的 PHP 手册页中被记录为不支持。

同样如页面底部的 ChangeLog 中所述,仅在 1.3.4 版驱动程序中添加了对您正在使用的选项的选项(选项参数样式)的支持。所以您可能需要检查您的驱动程序版本。

【讨论】:

  • 我的驱动程序版本是最新的。它是 1.4.5
  • @ShaktiSingh 那么这看起来确实不寻常,因为我自己对此进行了测试。给出的错误将在选项检查时从 PHP 驱动程序发出。它不是从外部源抛出的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-02
  • 2014-01-13
相关资源
最近更新 更多