Docs 菜单
Docs 主页
/ / /
PHP 库手册

从 MongoDB 读取数据

在此页面上

  • Overview
  • 示例应用程序
  • 找到一个
  • 查找多个
  • 对集合中的文档进行计数
  • 对查询返回的文档进行计数
  • 估计文档计数
  • Retrieve Distinct Values
  • 监控数据变化

在此页面上,您可以查看可复制的代码示例,这些示例显示了用于检索文档的常见PHP库方法。

提示

要了解有关此页面上显示的任何方法的更多信息,请参阅每个部分中提供的链接。

要使用本页中的示例,请将代码示例复制到示例应用程序或您自己的应用程序中。确保设立 MONGODB_URI环境变量设置为MongoDB 部署的连接字符串,并将<database><collection>占位符替换为目标命名空间的值。

您可以使用以下示例应用程序来测试本页上的代码示例。 要使用示例应用程序,请执行以下步骤:

  1. 确保您已在项目中安装MongoDB PHP库。要学习;了解有关安装MongoDB PHP库的更多信息,请参阅下载和安装指南。

  2. 复制以下代码并将其粘贴到新的.php文件中。

  3. 从此页面复制代码示例,并将其粘贴到文件中的指定行。

1<?php
2
3require __DIR__ . '/../vendor/autoload.php';
4
5$uri = getenv('MONGODB_URI') ?: throw new RuntimeException('Set the MONGODB_URI variable to your Atlas URI that connects to the sample dataset');
6$client = new MongoDB\Client($uri);
7
8$collection = $client->selectCollection('<database>', '<collection>');
9
10// Start example code here
11
12// End example code here

以下代码演示如何从集合中检索与指定条件匹配的单个文档:

$document = $collection->findOne(['year' => 1994]);
echo json_encode($document), PHP_EOL;

要学习;了解有关findOne()方法的更多信息,请参阅《检索数据》指南中的《查找一个文档》部分。

以下代码演示如何从集合中检索符合指定条件的所有文档:

$resultsMultiple = $collection->find(['year' => 1970]);
foreach ($resultsMultiple as $doc) {
echo json_encode($doc), PHP_EOL;
}

要学习;了解有关find()方法的更多信息,请参阅《检索数据》指南中的《查找多个文档》部分。

以下代码演示如何计算集合中的文档数量:

$result = $collection->countDocuments([]);
echo 'Number of documents: ', $result;

要学习;了解有关countDocuments()方法的更多信息,请参阅对文档进行计数指南中的对所有文档进行计数部分。

以下代码演示如何对集合中符合指定条件的文档进行计数:

$result = $collection->countDocuments(['year' => 2010]);
echo 'Number of companies founded in 2010: ', $result;

要学习;了解有关countDocuments()方法的更多信息,请参阅《计数文档》指南中的《计数特定文档》部分。

以下代码演示如何检索集合中文档数量的估计值:

$result = $collection->estimatedDocumentCount();
echo 'Estimated number of documents: ', $result;

要学习;了解有关estimatedDocumentCount()方法的更多信息,请参阅 计数文档指南中的检索估计计数部分。

以下代码演示如何检索符合指定条件的文档的字段唯一值:

$results = $collection->distinct('year');
foreach ($results as $value) {
echo json_encode($value), PHP_EOL;
}

要了解有关distinct()方法的更多信息,请参阅“检索不同字段值”指南。

以下代码展示了如何监控和打印对集合的更改:

$changeStream = $collection->watch();
for ($changeStream->rewind(); true; $changeStream->next()) {
if ( ! $changeStream->valid()) {
continue;
}
$event = $changeStream->current();
echo toJSON($event), PHP_EOL;
if ($event['operationType'] === 'invalidate') {
break;
}
}

要了解有关watch()方法的更多信息,请参阅“监控数据更改”指南。

后退

时间序列集合