在 Symfony 4 中使用 MongoDB
Use MongoDB with Symfony 4
我在使用 Symfony 4 和 MongoDB Atlas(云集群...但在本地我认为是一样的)时遇到了一些小问题。我在 Windows 10 pro 上 php 7.1.1.
基于这篇文章
http://php.net/manual/en/mongodb.tutorial.library.php
这是我的管理控制器中的代码
$mongo = new MongoClient();
$dbs = $mongo->listDBs();
print_r($dbs);
我收到这个错误
Attempted to load class "MongoClient" from namespace "App\Controller\Admin".
Did you forget a "use" statement for "MongoClient"?
但是:我的扩展程序加载正确。
MongoDb 分机。 php信息()输出
mongodb
MongoDB support enabled
MongoDB extension version 1.3.4
MongoDB extension stability stable
libbson bundled version 1.8.2
libmongoc bundled version 1.8.2
libmongoc SSL enabled
libmongoc SSL library OpenSSL
libmongoc crypto enabled
libmongoc crypto library libcrypto
libmongoc crypto system profile disabled
libmongoc SASL enabled
Directive Local Value Master Value
mongodb.debug no value
composer.json
"alcaeus/mongo-php-adapter": "^1.1",
"doctrine/mongodb": "^1.6",
"doctrine/mongodb-odm": "^1.2",
"doctrine/mongodb-odm-bundle": "^3.4",
"mongodb/mongodb": "^1.2",
作曲家版本
1.6
我也使用 mongodb-odm-bundle。这工作正常,但我也想在我的项目中使用官方遗留 mongodb 库(与集群连接没问题)。但是当我尝试使用 MongoClient() 时出现此错误...
所以,我必须使用哪个 "use statement"?
客户 class 的名字(我想你的意思是 mongodb/mongodb
,而不是来自 doctrine/mongodb
)是:\MongoDB\Client
.
因此更新您的代码应该可以解决问题:
$mongo = new \MongoDB\Client();
$dbs = $mongo->listDBs();
print_r($dbs);
Symfony 4 + Mongodb Atlas
的正确配置
1) composer require mongodb/mongodb (nothing else)
控制器
namespace App\Controller\your_controller;
包括图书馆
use MongoDB;
CONNECTION(例如获取数据库列表)
$connection = 'mongodb://___full_URI_MongoDBAtlas___';
$client = new MongoDB\Client($connection);
$dbs = $client->listDatabases();
var_dump($dbs);
我在使用 Symfony 4 和 MongoDB Atlas(云集群...但在本地我认为是一样的)时遇到了一些小问题。我在 Windows 10 pro 上 php 7.1.1.
基于这篇文章
http://php.net/manual/en/mongodb.tutorial.library.php
这是我的管理控制器中的代码
$mongo = new MongoClient();
$dbs = $mongo->listDBs();
print_r($dbs);
我收到这个错误
Attempted to load class "MongoClient" from namespace "App\Controller\Admin".
Did you forget a "use" statement for "MongoClient"?
但是:我的扩展程序加载正确。
MongoDb 分机。 php信息()输出
mongodb
MongoDB support enabled
MongoDB extension version 1.3.4
MongoDB extension stability stable
libbson bundled version 1.8.2
libmongoc bundled version 1.8.2
libmongoc SSL enabled
libmongoc SSL library OpenSSL
libmongoc crypto enabled
libmongoc crypto library libcrypto
libmongoc crypto system profile disabled
libmongoc SASL enabled
Directive Local Value Master Value
mongodb.debug no value
composer.json
"alcaeus/mongo-php-adapter": "^1.1",
"doctrine/mongodb": "^1.6",
"doctrine/mongodb-odm": "^1.2",
"doctrine/mongodb-odm-bundle": "^3.4",
"mongodb/mongodb": "^1.2",
作曲家版本
1.6
我也使用 mongodb-odm-bundle。这工作正常,但我也想在我的项目中使用官方遗留 mongodb 库(与集群连接没问题)。但是当我尝试使用 MongoClient() 时出现此错误...
所以,我必须使用哪个 "use statement"?
客户 class 的名字(我想你的意思是 mongodb/mongodb
,而不是来自 doctrine/mongodb
)是:\MongoDB\Client
.
因此更新您的代码应该可以解决问题:
$mongo = new \MongoDB\Client();
$dbs = $mongo->listDBs();
print_r($dbs);
Symfony 4 + Mongodb Atlas
的正确配置1) composer require mongodb/mongodb (nothing else)
控制器
namespace App\Controller\your_controller;
包括图书馆
use MongoDB;
CONNECTION(例如获取数据库列表)
$connection = 'mongodb://___full_URI_MongoDBAtlas___';
$client = new MongoDB\Client($connection);
$dbs = $client->listDatabases();
var_dump($dbs);