MongoClient和MongoDB之间的比较。为什么MongoClient更好?

时间:2016-02-01 16:29:56

标签: php mongodb php-5.6 php-7

我不喜欢新的mongo,MongoDB在PHP7中需要几个库。

php 5中的MongoClient(已弃用)更加舒适轻便!

我决定启动一个脚本并比较两个版本,结果非常令人惊讶:

MongoDB(PHP 7.0.2)

$client = new MongoDB\Client(
    'mongodb://root:password@localhost:port',
    ['readPreference' => 'secondaryPreferred']
);
$db = $client->selectDatabase('namedb');
$collection = $client->selectCollection('namedb', 'test');
$document   = $collection->findOne(['_id' => 'works']);
var_dump($document);
$time       = microtime();
$time       = explode(' ', $time);
$time       = $time[1] + $time[0];
$finish     = $time;
$total_time = round(($finish - $start), 4);
echo '<br><br>Page generated in ' . $total_time . ' seconds.';

Mongo / MongoClient(PHP 5.6.17)

$db = new MongoClient('mongodb://root:password@localhost:port');
$c  = $db->namedb->test;
$a  = $c->findOne(array("_id" => 'works'));
var_dump($a);
$time       = microtime();
$time       = explode(' ', $time);
$time       = $time[1] + $time[0];
$finish     = $time;
$total_time = round(($finish - $start), 4);
echo '<br><br>Page generated in ' . $total_time . ' seconds.';

Comparision between MongoClient (PHP 7.0.2) and MongoDB(PHP 5.6.17)

其他人遇到此问题? 我在使用新版MongoDB时找不到任何好处,都是问题!

1 个答案:

答案 0 :(得分:0)

MongoClient是一个用PHP扩展编写的本机驱动程序。

MongoDB是PHP代码,它使用不同的PHP扩展。我认为新扩展更容易维护,因为它共享除PHP以外的项目使用的libmongoc库。

将本机驱动程序与PHP库进行比较是一种不公平的比较。如果你想比较性能,你应该直接尝试一个本机驱动程序。

  

我在使用新版MongoDB时找不到任何好处

首先,旧的MongoClient扩展程序已弃用。如果您或其他人选择接收并维护它,它将继续存在。虽然为同一个任务设置两个类似的库会让人感到困惑(参见mysql vs mysqli)。

MongoDB旨在提供更高级别的抽象,您可能希望看到更频繁的功能更新,而不是本机驱动程序。