我不喜欢新的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.';
其他人遇到此问题? 我在使用新版MongoDB时找不到任何好处,都是问题!
答案 0 :(得分:0)
MongoClient
是一个用PHP扩展编写的本机驱动程序。
MongoDB
是PHP代码,它使用不同的PHP扩展。我认为新扩展更容易维护,因为它共享除PHP以外的项目使用的libmongoc
库。
将本机驱动程序与PHP库进行比较是一种不公平的比较。如果你想比较性能,你应该直接尝试一个本机驱动程序。
我在使用新版MongoDB时找不到任何好处
首先,旧的MongoClient
扩展程序已弃用。如果您或其他人选择接收并维护它,它将继续存在。虽然为同一个任务设置两个类似的库会让人感到困惑(参见mysql vs mysqli)。
MongoDB
旨在提供更高级别的抽象,您可能希望看到更频繁的功能更新,而不是本机驱动程序。