Mongodb通过Laravel / PHP检查连接是否正常

时间:2016-11-10 13:28:08

标签: php mongodb laravel

我正在使用laravel 5.2和MongoDB 3.2。

我想在我的应用程序启动之前测试连接是否正常(我不能使用数据库外观),在monolog配置中。如果连接不正常,我将使用登录文件。

通过推荐,我测试MongoClient,Mongo和MongoDB \ Client,并使用任何已启用的功能。

我尝试按以下方式测试mongo connect:

$mongoClient = new \MongoDB\Client('mongodb://localhost:27017');
$mongoClient->selectCollection('mydb', 'mycollection');

这是回报:

Client {   
    +manager: Manager {#21}
    +uri: "mongodb://localhost:27017"   
    +typeMap: [
        array => "MongoDB\Model\BSONArray",
        document => "MongoDB\Model\BSONDocument",
        root => "MongoDB\Model\BSONDocument"   
    ]
}

Finnaly,我的问题:

  • 在应用启动之前是否存在使用数据库外观的方法?
  • 使用PHP测试MongoDB连接的正确方法是什么?

如果您有其他建议,我将感激不尽。

2 个答案:

答案 0 :(得分:1)

根据PHP文档the driver connects to the database lazilyhttp://php.net/manual/en/mongodb-driver-manager.getservers.php),测试连接的唯一方法应该是执行你的评论中所述的findOne()命令。

此外,如果此时DB或Collection的名称不确定,您可以使用listDatabases()方法,如果连接失败,也会抛出异常。

答案 1 :(得分:0)

使用这种方式可以检查与PHP的MongoDB连接:

$connection = new MongoClient(); // connects to localhost:27017
$connection = new MongoClient( "mongodb://example.com" ); // connect to a remote host (default port: 27017)
$connection = new MongoClient( "mongodb://example.com:65432" ); // connect to a remote host at a given port