2016-02-01 15 views
5

Tôi không thích Mongo mới, MongoDB yêu cầu một số lib trong PHP7.So sánh giữa MongoClient và MongoDB. Tại sao MongoClient lại tốt hơn?

MongoClient (không được chấp nhận) trong php 5 thoải mái hơn và nhẹ hơn!

tôi đã quyết định để khởi động một kịch bản và so sánh hai phiên bản và kết quả là khá đáng ngạc nhiên:

MongoDB (PHP 7.0.2)

$client = new MongoDB\Client(
    'mongodb://root:[email protected]: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:[email protected]: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)

Bất kỳ ai khác gặp sự cố này? Tôi không thể tìm thấy bất kỳ lợi ích nào khi sử dụng phiên bản MongoDB mới, tất cả đều là vấn đề!

+1

'MongoDB' chỉ cung cấp API cấp thấp. Nếu bạn muốn có một API cấp cao hơn giống như trình điều khiển MongoDB cung cấp cho các ngôn ngữ khác, bạn cần sử dụng PHPLib của MongoDB. Kiểm tra hướng dẫn sử dụng php về MongoDB, phplib được liên kết ở đó. –

+1

Bạn cũng cần sử dụng 'microtime (true)'! Nếu không có đối số được đặt thành 'true', bạn sẽ nhận được một chuỗi được trả về, điều này sẽ cho bạn kết quả sai trong các phép toán. –

+0

'$ start = microtime (true); .... hoạt động mongodb của bạn ... $ totaltime = microtime (true) - $ start; 'Thực sự không cần phải phát nổ hay bất cứ thứ gì. –

Trả lời

0

MongoClient là trình điều khiển gốc được viết dưới dạng phần mở rộng PHP.

MongoDB là mã PHP sử dụng phần mở rộng PHP khác. Tôi cho rằng phần mở rộng mới dễ bảo trì hơn vì nó chia sẻ thư viện libmongoc được sử dụng bởi các dự án khác ngoài PHP.

So sánh trình điều khiển gốc với thư viện PHP là một so sánh không công bằng. Nếu bạn muốn so sánh hiệu suất, bạn nên thử một trình điều khiển gốc trực tiếp với trình điều khiển kia.

tôi không thể tìm thấy bất kỳ lợi ích trong việc sử dụng các phiên bản mới của MongoDB

Trước hết, phần mở rộng cũ MongoClient bị phản đối. Nó sẽ chỉ sống trên nếu bạn hoặc người khác chọn để nhặt nó lên và duy trì nó. Mặc dù có hai thư viện tương tự cho cùng một nhiệm vụ sẽ gây nhầm lẫn (xem mysql vs mysqli).

MongoDB có nghĩa là cung cấp mức trừu tượng cao hơn và bạn có thể mong đợi thấy các cập nhật tính năng thường xuyên hơn so với trình điều khiển gốc.

Các vấn đề liên quan