MongoClient 类与 MongoDB\Driver\Manager 类

Jih*_*Lee 3 php mongodb

我想得到您对我的网络项目的推荐。我使用 PHP 和 MongoDB,但是当我从 php 文档中读到这句话时,我感到很困惑。

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

我已经使用 MongoClient 类进行 CRUD,但读完这句话后,我尝试将 MongoClient 迁移到 MongoDB\Driver\Manager。使用 MongoDB\Driver\Manager 的连接成功,但我不能了:(

我的 PHP 版本是 5.6.29。Mongo 扩展版本是 1.7.0 MongoDB 扩展版本是 1.2.9

我的问题是:我必须使用 MongoDB\Driver\Manager 类吗?它比 MongoClient 类更好吗?

Met*_*bie 5

关于已弃用的语言功能,这里有一个很好的答案: PHP 对已弃用的函数做了什么?

这是 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) {
//...
}
Run Code Online (Sandbox Code Playgroud)

关于php和mongodb的CRUD操作的教程有很多,例如:MongoDB PHP教程

简而言之:由于安全原因以及将来它可能会从 php 中删除,您不应该使用已弃用的功能。所以最好更新你的代码。