Overview
本页介绍了PHP库中提供的MongoDB连接和身份验证选项。
设置连接选项
您可以通过在连接 URI 中指定选项或将选项传递给MongoDB\Client构造函数来配置连接。
使用连接 URI
如果将连接 URI 传递给MongoDB\Client构造函数,则可以将连接选项作为<name>=<value>对包含在 URI 中。 在以下示例中,连接 URI 将tls选项设置为true ,并将tlsCertificateKeyFile选项设置为/path/to/file.pem :
// Replace the placeholders with your actual hostname, port, and path to the certificate key file$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=/path/to/file.pem';
// Create a MongoDB client$client = new MongoDB\Client($uri);使用MongoDB\Client 对象
您可以将连接选项传递给MongoDB\Client构造函数,而不是将它们包含在连接 URI 中。
以下示例演示如何使用MongoDB\Client构造函数的$uriOptions参数设立连接选项:
// Replace the placeholders with your actual hostname and port$uri = 'mongodb://<hostname>:<port>/';
// Set the connection options// Replace the placeholder with the actual path to the certificate key file$uriOptions = [ 'tls' => true, 'tlsCertificateKeyFile' => '/path/to/file.pem',];
// Create a MongoDB client with the URI and options$client = new Client($uri, $uriOptions);注意
如果您在$uriOptions参数和连接 URI 中同时指定一个选项,则$uriOptions中的值优先。
连接 URI 选项
以下部分介绍了可以为MongoDB连接设立的选项。 每个连接选项都链接到MongoDB Server手册中相应的条目。
重要
百分比编码
如果连接选项的值包含特殊字符,则必须先对该值进行百分号编码,然后才能将其包含在连接 URI 中。您可以使用 rawurlencode() 方法根据 RFC 3986 中指定的 URI 语法对这些值进行编码。
将连接选项包含在$uriOptions参数中时,不对连接选项进行百分号编码。
要了解详情,请参阅以下资源:
副本集选项
连接选项 | 说明 |
|---|---|
数据类型: | |
数据类型: |
连接选项
TLS 选项
要学习;了解PHP库中提供的 TLS 选项,请参阅TLS页面。
超时选项
连接选项 | 说明 |
|---|---|
数据类型: | |
数据类型: |
压缩选项
连接选项 | 说明 |
|---|---|
数据类型: | |
数据类型: |
写关注选项
连接选项 | 说明 |
|---|---|
数据类型: | |
数据类型: | |
数据类型: |
读关注选项
连接选项 | 说明 |
|---|---|
数据类型: |
读取偏好选项
连接选项 | 说明 |
|---|---|
数据类型:MongoDB\驱动程序\ReadPreference | |
数据类型: | |
数据类型: 连接 URI 示例: |
身份验证选项
要学习;了解PHP库中提供的身份验证选项,请参阅身份验证机制。
服务器选择和发现选项
连接选项 | 说明 |
|---|---|
数据类型: | |
数据类型: | |
数据类型: | |
数据类型: | |
数据类型: | |
| 数据类型: |
| 数据类型: |
其他配置
连接选项 | 说明 |
|---|---|
数据类型: | |
数据类型: | |
数据类型: | |
数据类型: | |
数据类型: |
注意
智能工作负载管理 (IWM) 中的负载削减
如果带有 SystemOverloadedError 或 RetryableError 标签的错误导致您的应用程序出现故障或出现在您的应用程序日志中,则说明您的集群上可能已启用负载削减 (Load Shedding),并且您的驱动程序可能未升级到支持该功能的版本。我们建议将您的 MongoDB PHP 库升级到 2.3 或更高版本。如果您在升级后仍然看到这些错误,可以通过服务器端更改(例如查看您的负载削减配置)或通过应用程序端更改(例如实现自定义错误处理或客户端请求限制)来解决这些错误。根据您的情况,应用程序端更改可能是更可取或必要的。
负载削减 (Load Shedding) 是 IWM 的一项功能,有助于在持续过载期间通过拒绝多余的操作来管理服务器负载。此功能适用于 MongoDB 9.0 及更高版本。
API 文档
有关MongoDB\Client类的更多信息,请参阅以下PHP库API文档:
有关MongoDB\Driver\ReadPreference类的更多信息,请参阅以下PHP扩展API文档: