MongoClient类与MongoDB \ Driver \ Manager类

问题描述:

我想获得关于我的web项目的推荐。我使用PHP和MongoDB,但当我从php文档中读到这句话时,我感到困惑。MongoClient类与MongoDB Driver Manager类

这个定义这个类的扩展已被弃用。相反,应该使用MongoDB扩展。这个类的替代包括: MongoDB \ Driver \ Manager

我已经使用MongoClient类CRUD,但在读完这句话后,我尝试将MongoClient迁移到MongoDB \ Driver \ Manager。使用MongoDB的\驱动程序\管理器的连接被successed但我不能再:(

我的PHP版本是29年6月5日。 蒙戈扩展的版本是1.7.0 MongoDB的扩展版本是1.2.9

我的问题是: 我一定要使用MongoDB的\驱动程序\管理类 它比MongoClient类更好

下面是有关不推荐使用的语言功能一个很好的答案:?? What does PHP do with deprecated functions?

这里是PHP中的正确使用与MongoDB的:

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017"); 
$filter = []; 
$options = [ 
    'sort' => ['_id' => 1], 
]; 

$query = new MongoDB\Driver\Query($filter, $options); 
$cursor = $manager->executeQuery('db.collection', $query); 

foreach ($cursor as $document) { 
//... 
} 

有被大量使用PHP和MongoDB教程CRUD操作,例如:MongoDB PHP tutorial

总之:你不应该使用过时功能,因为安全的原因,因为它可能会在未来从PHP中删除。所以更好地更新你的代码。

+0

谢谢!我可以问更多吗?什么是MongoDB \ Driver \ Command类?我无法理解它何时被使用。 –

+0

“MongoDB \ Driver \ Command类是**表示数据库命令**的值对象。”例如:'$ command = new MongoDB \ Driver \ Command(['ping'=> 1]);'或'$ command = new MongoDB \ Driver \ Command([“count”=>“collection”,“query” => $ query]);' –

+0

使用以下命令可以计算包含此字符串“world”的文档:'$ query = [“hello”=>“world”]; $ command = new MongoDB \ Driver \ Command([“count”=>“collection”,“query”=> $ query]);'' –