我正在使用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,我的问题:
如果您有其他建议,我将感激不尽。
答案 0 :(得分:1)
根据PHP文档the driver connects to the database lazily
(http://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