Class 'MongoDB\Client' 未找到,mongodb 已安装扩展

Class 'MongoDB\Client' not found, mongodb extension installed

我尝试创建新的 mongo 连接执行以下代码

$m = new MongoDB\Client();

我收到了这个错误:

Fatal error: Class 'MongoDB\Client' not found

我想我已经正确安装了 MongoDB 扩展 (已将 php_mongodb.dll 复制到 ext 文件夹并使用 extension=php_mongodb.dll 更新了 php.ini。

以下代码确认它已加载:

echo extension_loaded("mongodb") ? "loaded\n" : "not loaded\n";

我仍然收到同样的错误。

这是 phpinfo()

非常感谢您的帮助。谢谢!

我也遇到了同样的情况,请检查 php 安装在您的服务器上的版本。 您必须使用 php 5.6 版。检查 apche 错误日志以获得更准确的错误详细信息。

如果您使用的是 PHP 的最新 MongoDB 扩展,MongoDB\Driver\Manager 是扩展的主要入口点。

这是使用最新扩展名检索数据的示例代码。

假设您在 testDb 中有 testColl collection。您可以使用扩展程序的 MongoDB\Driver\Query class 检索数据。

// Manager Class
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

// Query Class
$query = new MongoDB\Driver\Query(array('age' => 30));

// Output of the executeQuery will be object of MongoDB\Driver\Cursor class
$cursor = $manager->executeQuery('testDb.testColl', $query);

// Convert cursor to Array and print result
print_r($cursor->toArray());

输出:

Array
(
    [0] => stdClass Object
        (
            [_id] => MongoDB\BSON\ObjectID Object
                (
                    [oid] => 5848f1394cea9483b430d5d2
                )

            [name] => XXXX
            [age] => 30
        )

)

我使用的是 PHP 7.1.9,我遇到了这个问题。通过删除并重新安装 mongodb/mongodb

解决了这个问题
composer remove mongodb/mongodb
composer require mongodb/mongodb

此外,如果您使用的是 Dreamweaver,请不要将 vendor 文件夹放入服务器副本。

安装后,我现在可以使用MongoDB\Client

mongodb API 版本 1.3,Mongodb 扩展 1.4

简单的安装方式

sudo apt-get install php-mongodb

安装后 mongo

90% 的时间是您的 Mongodb 扩展配置。请检查php.ini

Apache 和 Nginx 不同。

虽然这个 post 是旧的,但我帮助这个可能会对某人有所帮助。我最近 运行 遇到了同样的问题。我不一样 php.ini.

我一直将 mongoextension 放入 /cli/php.ini.

虽然当我 运行 <?php phpinfo() ?> 我发现在我的例子中加载的配置在 /fpm/php.ini 中。这是因为我用 fpm 取消了 Nginx。

\MongoDB\Driver\Manager(); 现在是“low level”扩展(php_mongodb),\MongoDB\Client 被重写为“PHP class" 并且您需要额外安装 https://docs.mongodb.com/drivers/php/ 才能使用旧式 nice new \MongoDB\Client('mongodb://127.0.0.1');