一、介绍
MongoDB 是一个基于文档的 NoSQL 数据库,适合处理大量的非结构化数据,在 Web 和企业应用程序的存储和处理中广泛应用,提供了良好的可扩展性、高性能和处理未处理数据的能力。
PHP 扩展 MongoDB 可以帮助你快速地使用 PHP 应用程序访问 MongoDB 数据库。这篇教程将介绍如何使用 PHP 扩展 MongoDB 进行数据检索和存储。
二、安装和配置 MongoDB PHP 扩展
1. 安装 PHP 和 MongoDB 驱动
```
sudo apt-get install php7.4 php-pear
sudo pecl install mongodb
```
2. 在 php.ini 文件中添加以下行:
```
extension=mongodb.so
```
三、MongoDB 基本操作
1. 连接到 MongoDB 数据库
```php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
?>
```
2. 插入数据
```php
$bulk = new MongoDB\Driver\BulkWrite;
$document = ['_id' => new MongoDB\BSON\ObjectID, 'title' => 'MongoDB', 'description' => 'database', 'likes' => 100, 'url' => 'http://www.mongodb.org'];
$_id = $bulk->insert($document);
$manager->executeBulkWrite('db.collection', $bulk);
?>
```
3. 查询数据
```php
$filter = ['likes' => ['$gt' => 50]];
$options = ['projection' => ['title' => 1, '_id' => 0]];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);
foreach ($cursor as $document) {
echo $document->title . "\n";
}
?>
```
四、MongoDB PHP 扩展高级操作
1. 使用 MongoDB Date 查询数据
下面的代码说明了如何使用 MongoDB Date 查询数据:
```php
$filter = ['datetime' => ['$gte' => new MongoDB\BSON\UTCDateTime(strtotime("2016-01-01T01:00:00Z") * 1000), '$lt' => new MongoDB\BSON\UTCDateTime(strtotime("2016-01-01T02:00:00Z") * 1000)]];
$options = [];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);
foreach ($cursor as $document) {
echo $document->title . "\n";
}
?>
```
2. MongoDB 大型数据集查询
如果查询数据集非常大,则收集所有搜索结果并返回它们可能是棘手的。通过使用扫描游标可以避免这个问题。
```php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$filter = [];
$options = ['limit' => 2, 'skip' => 2];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);
foreach ($cursor as $document) {
echo $document->title . "\n";
}
?>
```
五、结论
在 PHP 中使用 MongoDB PHP 扩展很容易,它提供了灵活的 API 以及一个简单的方法来查询非常大的数据集。在开发 Web 应用程序和处理大量数据时,它是一个非常合适的工具。