演示环境说明
- PHP 7.2
- Win 10
- composer 1.7.3
说在前面
多数博客中还在使用new MongoClient()
这样的链接方式操作MongoDB,但是MongoDB的官方文档已经建议只用1.4版本的数据库驱动,但文档中又略有坑点,所以我把我的实践经历写一下。未来将会不断完善。文章主要解决了以下坑点:
- 连接远程MongoDB的参数如何设置,如何定义帐号密码,主机地址与端口。
- 如何选择数据库与文档集
- 如何将find和findOne的结果转换为json
- 如何使用插入和更新的结果
composer安装
根据官方文档:https://docs.mongodb.com/php-library/current/tutorial/install-php-library/
我们可以使用composer完成MongoDB插件的安装。
安装命令:composer require mongodb/mongodb
连接MongoDB
官方文档:https://docs.mongodb.com/php-library/current/reference/method/MongoDBClient__construct/
官方的大量例子中,都只使用一个简短的命令链接到本机的MongoDB,但实际上我们通常要指定很多参数,我给大家举个常用的例子就懂了。
$client = new MongoDB\Client(
'mongodb://rs1.example.com,rs2.example.com/'
[
'username' => 'myUsername',
'password' => 'myPassword',
'ssl' => true,
'replicaSet' => 'myReplicaSet',
'authSource' => 'admin',
],
);
第一个参数为unix链接地址(即为主机地址与端口号),第二个参数可以设置常用的参数。
第三个参数省略了,有需要的看文档(我测试设置了typeMap
参数是无效的)
官方短样例:$client = (new MongoDB\Client)
选择数据库与文档集
官方文档:https://docs.mongodb.com/php-library/current/reference/method/MongoDBClient-selectDatabase/
- 选择数据库
- 方法一:
$db = (new MongoDB\Client)->db1
- 方法二:
$client = new MongoDB\Client("mongodb://xxx.xx.xxx:25565", [ ... ]);
$db = $client->selectDatabase("db1");
官方文档:https://docs.mongodb.com/php-library/current/reference/method/MongoDBClient-selectCollection/
- 选择文档集
- 方法一:
$collection= (new MongoDB\Client)->db1->collection1
- 方法二:
$client = new MongoDB\Client("mongodb://xxx.xx.xxx:25565", [ ... ]);
$db = $client->selectDatabase("db1");
$collection = $db->selectCollection("collection1")