2016-12-05 107 views
5

我试图创建新蒙戈连接执行以下代码班“的MongoDB 客户”未找到,MongoDB的扩展安装

$m = new MongoDB\Client();

,我得到这个错误:

Fatal error: Class 'MongoDB\Client' not found

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

下面的代码证实了这一点装:

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

我仍然收到了同样的错误。

这里是 phpinfo()

我感谢你的帮助。谢谢!

+0

是否包含自动加载机? – simon

+0

你可以指定更多,即时通讯 –

+0

请参阅[使用PHP库for MongoDB](http://php.net/manual/en/mongodb.tutorial.library.php) – simon

回答

10

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

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

假设您在testDbtestColl集合。您可以使用MongoDB\Driver\Query扩展类检索数据。

// 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 
     ) 

) 
+0

谢谢!这个新的MongoDB分机让我很困惑,所以我切换回老孟哥。 :D –

+0

如此糟糕,这在官方文档中没有记录。使用作曲家(作为文件)是一种方式,而不是唯一的方法:) – Simon

0

同样的事情发生在我身上,检查你的服务器上的PHP安装版本。 你必须使用php版本5.6。检查apche错误日志以获得更精确的错误细节。

+0

是的,我也使用5.6版本。在互联网上的所有类似的问题只是让我更困惑:( –

+0

什么你的Apache错误日志告诉你 –

+0

和路径是/var/log/apache2/error.log –

0

我使用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