MongoDB PHP 扩展
MongoDB PHP 扩展技术文档
简介
MongoDB PHP 扩展(简称 mongo 扩展)是 MongoDB 官方提供的 PHP 数据库驱动程序,可以和 PHP 语言集成,方便地操作 MongoDB 数据库。使用 mongo 扩展,可以在 PHP 中进行 MongoDB 的 CRUD 操作和聚合查询等操作。
安装
安装必要前置
在安装 mongo 扩展之前,需要确保已安装了以下软件:
- PHP 版本 7.0 以上,支持 MongoDB 的版本需求。
- 一个 MongoDB 数据库实例。
下载与编译
可以在 PHP 的 PECL 仓库中下载最新版本的扩展,也可以从 MongoDB 的 GitHub 仓库中下载安装包。
PECL 安装:
pecl install mongo
手动安装:
git clone https://github.com/mongodb/mongo-php-driver.git
cd mongo-php-driver
phpize
./configure
make all -j 4
sudo make install
使用
建立连接
在 PHP 中,可以通过MongoClient
类来建立一个 MongoDB 数据库连接,例如:
$m = new MongoClient(); // 建立连接
参数配置:
参数 | 描述 |
---|---|
host | MongoDB数据库实例所在主机地址 |
port | MongoDB数据库实例连接端口 |
username | MongoDB数据库实例账号用户名 |
password | MongoDB数据库实例账号密码 |
authSource | MongoDB数据库实例授权数据库 |
connect | 是否异步连接,如果开启,则会立刻返回一个MongoClient 实例对象,并在后续操作中连接数据库 |
readPreference | 读操作偏好设置 |
例如:
$mongoClient = new MongoClient(
"mongodb://user:password@localhost:27017/?authSource=admin",
[
"connect" => TRUE,
"readPreference" => MongoClient::RP_SECONDARY_PREFERRED,
]
);
选择数据库和集合
建立连接之后,可以通过MongoClient
类的 selectDB
和selectCollection
方法选择数据库和集合,例如:
$db = $m->selectDB("mydb"); // 选择数据库
$collection = $db->selectCollection("users"); // 选择集合
插入数据
MongoDB 数据库使用 JSON 文档保存数据。可以通过MongoCollection
类的insert
方法来插入数据,例如:
$document = array( "name" => "MongoDB", "type" => "database", "count" => 1 );
$collection->insert($document);
更新数据
可以通过MongoCollection
类的update
方法来更新数据,例如:
$collection->update(
array("name" => "MongoDB"),
array('$set' => array("count" => 99))
);
删除数据
可以通过MongoCollection
类的remove
方法来删除数据,例如:
$collection->remove(array("name" => "MongoDB"));
查询数据
可以通过MongoCollection
类的find
方法来查询数据,例如:
$cursor = $collection->find();
foreach ($cursor as $doc) {
var_dump($doc);
}
聚合查询
可以通过MongoCollection
类的aggregate
方法进行聚合查询,例如:
$pipeline = array(
array(
'$match' => array('status' => 'A')
),
array(
'$group' => array(
'_id' => '$cust_id',
'total' => array('$sum' => '$amount')
)
),
array(
'$sort' => array('total' => -1)
),
array(
'$limit' => 3
)
);
$result = $collection->aggregate($pipeline);
总结
以上是关于 MongoDB PHP 扩展的学习笔记,mongo 扩展提供了一系列简便的数据库操作方法,可以轻松地完成 MongoDB 数据库的 CRUD 操作和聚合查询等功能。