想要在 PHP 中使用 MongoDB,您需要为 PHP 安装 MongoDB 的驱动,您可以从 PHP 官网(https://pecl.php.net/package/mongodb)下载最新版的 MongoDB 驱动。下载成功后解压得到的压缩包,并将其中的 php_mongo.dll 文件移动到您的 PHP 扩展目录中(默认为“ext”),然后在您的 PHP 配置文件(php.ini)文件中添加如下内容:
extension = php_mongo.dll
注意:如果您使用的是 phpstudy 之类的集成开发环境,还需要您将 PHP 的安装目录添加到 Path 环境变量中。
在 PHP 中若要建立对 MongoDB 的连接,首先需要指定数据库的名称,如果该数据库不存在,MongoDB 将会自动创建它,示例代码如下:
<?php
// 连接到 MongoDB
$m = new MongoClient();
echo "连接数据库成功<br>";
// 选择数据库
$db = $m->mydb;
echo "成功选择数据库 mydb";
?>
运行结果如下:
连接数据库成功
成功选择数据库 mydb
想要在 PHP 中为 MongoDB 创建集合,您可以使用 createCollection() 方法,示例代码如下:
<?php
// 连接到 MongoDB
$m = new MongoClient();
echo "连接数据库成功<br>";
// 选择数据库
$db = $m->mydb;
echo "成功选择数据库 mydb<br>";
$collection = $db->createCollection("mycol");
echo "集合创建成功";
?>
运行结果如下:
连接数据库成功
成功选择数据库 mydb
集合创建成功
要使用 PHP 向 MongoDB 中插入文档您可以使用 insert() 方法,示例代码如下:
<?php
// 连接到 MongoDB
$m = new MongoClient();
echo "数据库连接成功<br>";
// 选择数据库
$db = $m->mydb;
echo "成功选择数据库 mydb<br>";
$collection = $db->mycol;
echo "集合选择成功<br>";
$document = array(
"title" => "MongoDB",
"description" => "database",
"likes" => 100,
"url" => "https://www.cdsy.xyz/computer/soft/database/mongodb/",
"by" => "城东书院"
);
$collection->insert($document);
echo "文档插入成功";
?>
运行结果如下:
数据库连接成功
成功选择数据库 mydb
集合选择成功
文档插入成功
要使用 PHP 查找集合中的所有文档,您可以使用 find() 方法,示例代码如下:
<?php
// 连接到 MongoDB
$m = new MongoClient();
echo "连接数据库成功<br>";
// 选择数据库
$db = $m->mydb;
echo "成功选择数据库 mydb<br>";
$collection = $db->mycol;
echo "集合选择成功<br>";
$cursor = $collection->find();
$arr = iterator_to_array($cursor, false);
// 打印集合中的内容
echo "<pre>";
print_r($arr);
?>
运行结果如下:
连接数据库成功
成功选择数据库 mydb
集合选择成功
Array
(
[0] => Array
(
[_id] => MongoId Object
(
[$id] => 603c42fe34f5163c57000029
)
[title] => MongoDB
[description] => database
[likes] => 100
[url] => https://www.cdsy.xyz/computer/soft/database/mongodb/
[by] => 城东书院
)
)
要使用 PHP 更新集合中的文档,您可以使用 update() 方法,示例代码如下:
<?php
// 连接到 MongoDB
$m = new MongoClient();
echo "连接数据库成功<br>";
// 选择数据库
$db = $m->mydb;
echo "成功选择数据库 mydb<br>";
$collection = $db->mycol;
echo "集合选择成功<br>";
// 更新文档
$collection->update(array("title"=>"MongoDB"), array('$set'=>array("title"=>"MongoDB教程")));
echo "文档更新成功<br>";
// 查询更新后的文档
echo "查询更新后的文档<br>";
$cursor = $collection->find();
$arr = iterator_to_array($cursor, false);
// 打印集合中的内容
echo "<pre>";
print_r($arr);
?>
运行结果如下:
连接数据库成功
成功选择数据库 mydb
集合选择成功
文档更新成功
查询更新后的文档
Array
(
[0] => Array
(
[_id] => MongoId Object
(
[$id] => 603c42fe34f5163c57000029
)
[title] => MongoDB教程
[description] => database
[likes] => 100
[url] => https://www.cdsy.xyz/computer/soft/database/mongodb/
[by] => 城东书院
)
)
通过运行结果可以看出,我们成功将文档“title”字段的内容更新为了“MongoDB教程”。
要使用 PHP 删除集合中的文档,您可以使用 remove() 方法,示例代码如下:
<?php
// 连接到 MongoDB
$m = new MongoClient();
echo "连接数据库成功<br>";
// 选择数据库
$db = $m->mydb;
echo "成功选择数据库 mydb<br>";
$collection = $db->mycol;
echo "集合选择成功<br>";
// 删除指定文档
$collection->remove(array("title"=>"MongoDB教程"), array("justOne" => true));
echo "文档删除成功<br>";
// 查询更新后的文档
echo "查询更新后的文档<br>";
$cursor = $collection->find();
$arr = iterator_to_array($cursor, false);
// 打印集合中的内容
echo "<pre>";
print_r($arr);
?>
运行结果如下:
连接数据库成功
成功选择数据库 mydb
集合选择成功
文档删除成功
查询更新后的文档
Array
(
)
除了上面示例中介绍的方法外,在 PHP 中您还可以使用其余的 MongoDB 方法,例如 findOne()、save()、limit()、skip()、sort() 等来操作 MongoDB 数据库。
更多的操作方法可以参考 Mongodb 核心类:http://php.net/manual/zh/mongo.core.php。