mongo-php-library和MongoDB驱动程序有什么区别?

3

mongo-php-library和MongoDB驱动程序有什么区别?它们在性能和功能方面有何不同?优缺点是什么?

我们目前正在生产中使用"mongo-php-library",如下所示:

$connection = (new MongoDB\Client("mongodb://user:password@mongo:27017"));

$client = $connection->selectDatabase("the_database");

$collection_users = $client->selectCollection('users');

连接到这样的数据库是否有任何优缺点?

1个回答

7

mongo-php-library是用PHP编写的高级抽象,围绕着底层MongoDB PHP driver(mongodb扩展)提供了易于使用的更高级别 API,如查询构建器、单个命令帮助方法和GridFS。MongoDB driver mongodb是用C语言编写的,仅提供核心驱动程序功能的最小API:命令、查询、写入、连接管理和BSON序列化。因此,PHP开发人员需要mongo-php-library来提供易于使用的更高级别 API。

mongo-php-library已得到MongoDB官方支持,其性能和功能无可挑剔,除非您决定自己开发定制/优化库,否则它是唯一的选择,这可能会导致重复发明轮子。

以前旧版MongoDB PHP driver提供了高级别API,但MongoDB决定用当前的mongodb扩展进行替代,因此旧版驱动程序仅支持PHP 5.6和MongoDB 3.0。其原因未知,但我们猜测MongoDB想将MongoDB PHP driver保持在低级别,并在其之上开发一个PHP库,以便于支持PHP 7及后续的PHP升级。


所以从技术上讲,你不需要这个库,但是驱动程序是必需的,这样你的SAPI才能实际连接到远程数据库,对吧?那么这个库只是因为语法糖而方便吗?谢谢。 - user2402616
1
@user2402616 从技术上讲,你不需要库。但实际上,库应该能够节省你开发 Web 应用程序的时间。 - anhlc
好的,我得去研究一下。是的 - 库的代码示例似乎有优势。与基于Node的等效方法相比,原生的mongodb php代码编写并不容易。 - user2402616

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接