Привет, Я пытаюсь подключиться к mongoDB с Php7, используя следующий код
$connection = new MongoDB\Driver\Manager("mongodb://localhost:27017");
но получение следующей ошибки:
[: error] [pid 6069] [клиент 127.0.0.1:35118] Замечание PHP: Неопределенное свойство: MongoDB \ Driver \ Manager :: $ clients
Где $clients
– база данных mongodb, с которой я пытаюсь подключиться. Расширение MongoDB установлено и включено в Php.ini следующим образом:
extension=mongodb.so
При подключении к базе данных клиентов следующим образом
$db = $connection->clients;
Я получаю эту ошибку:
«Попытка получить свойство не-объекта»
phpinfo () также показывает установленный драйвер, как показано на следующем скриншоте
Я запускаю сервер apache2 на localhost. Любая идея, что может быть проблемой?
EDIT: если я делаю var_dump($connection)
я получаю следующее:
объект (MongoDB \ Driver \ Manager) # 1 (2) {["uri"] => string (25) "mongodb: // localhost: 27017" ["cluster"] => array (0) {}}
Ниже приведен правильный способ запроса с помощью диспетчера api. Он не имеет доступа к объекту db.
http://php.net/manual/en/class.mongodb-driver-manager.php
Вот пример
$connection = new MongoDB\Driver\Manager("mongodb://localhost:27017"); $id = new \MongoDB\BSON\ObjectId(SomeId); $filter = ['_id' => $id]; $query = new MongoDB\Driver\Query($filter); $cursor = $connection->executeQuery('DatabaseNameHere.CollectionNameHere', $query);
Альтернативный способ запроса – использовать Client api через загрузчик композитора.
Монтаж:
https://docs.mongodb.com/php-library/master/tutorial/install-php-library/
Учебники