对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

连接至 MongoDB

本页包含的代码示例展示了如何使用各种设置将PHP应用程序连接到MongoDB 。

提示

要了解有关此页面上的连接选项的更多信息,请参阅每个部分中提供的链接。

要使用此页面中的连接示例,请将代码示例复制到示例应用程序或您自己的应用程序中。确保将代码示例中的所有占位符(例如<hostname> )替换为MongoDB 部署的相关值。

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

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

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

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

提示

示例应用程序中的 require声明加载MongoDB PHP库,并假定 vendor目录与应用程序文件位于同一目录中。如果应用程序文件位于其他位置,请将路径相应调整为 vendor/autoload.php。

1<?php
2
3require __DIR__ . '/vendor/autoload.php';
4
5// Start example code here
6
7// End example code here
8
9try {
10 $client->test->command(['ping' => 1]);
11 echo 'Successfully pinged the MongoDB server.', PHP_EOL;
12} catch (MongoDB\Driver\Exception\RuntimeException $e) {
13 printf("Failed to ping the MongoDB server: %s\n", $e->getMessage());
14}

重要

百分比编码

您必须先对用户名和密码进行百分号编码,然后才能将其包含在MongoDB URI 中。您可以使用rawurlencode() 方法根据 RFC3986 中指定的 URI 语法对这些值进行编码。在将用户名或密码通过选项大量参数传递给MongoDB\Client 构造函数时,不要对用户名或密码进行百分号编码。

Atlas连接字符串使用 mongodb+srv 前缀并包含数据库用户的凭证。以下代码显示了如何连接到MongoDB Atlas部署:

$uri = 'mongodb+srv://<db_username>:<db_password>@<cluster-url>/';
$client = new MongoDB\Client($uri);

要学习;了解有关连接到Atlas部署的更多信息,请参阅连接目标指南中的Atlas 。

以下代码显示了如何连接到本地MongoDB 部署:

$uri = 'mongodb://localhost:27017/';
$client = new MongoDB\Client($uri);

注意

如果不指定$uri参数,则连接 URI 默认为'mongodb://127.0.0.1:27017' 。

要学习;了解有关连接到本地部署的更多信息,请参阅连接目标指南中的本地部署。

以下代码显示了如何连接到副本集部署:

$client = new MongoDB\Client(
'mongodb://<replica set member>:<port>/',
['replicaSet' => '<replica set name>'],
);
$uri = 'mongodb://<replica set member>:<port>/?replicaSet=<replica set name>';
$client = new MongoDB\Client($uri);

提示

要在一台托管关闭时保持与副本集部署的连接,可以在连接 URI 中提供多个副本集成员。

要学习;了解有关连接到副本集的更多信息,请参阅《连接目标》指南中的副本集。

以下代码显示了如何启用Stable API以连接到MongoDB实例:

$driverOptions = ['serverApi' => new MongoDB\Driver\ServerApi('1')];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
[],
$driverOptions,
);

要学习;了解有关 Stable API 的更多信息,请参阅 Connect with Stable API 指南。

以下代码展示了如何为连接指定 Snappy、 zlib和 Zstandard 压缩算法:

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
['compressors' => 'snappy,zstd,zlib'],
);
$uri = 'mongodb://<hostname>:<port>/?compressors=snappy,zstd,zlib';
$client = new MongoDB\Client($uri);

要学习;了解有关网络压缩的更多信息,请参阅压缩网络流量指南。