指定连接选项
在此页面上
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手册中相应的条目。
重要
百分比编码
如果连接选项的值包含特殊字符,则必须对 Percentage Encode 值,然后再将其包含在连接 URI 中。您可以使用rawurlencode()
方法根据 RFC 3986中指定的 URI 语法对这些值进行编码。
将连接选项包含在$uriOptions
参数中时,不对连接选项进行百分号编码。
要了解详情,请参阅以下资源:
rawurlencode 在PHP手册中
副本集选项
连接选项 | 说明 |
---|---|
Data Type: bool MongoDB\Client Example: $uriOptions = ['directConnection' => true]; Connection URI Example: directConnection=true | |
Data Type: string MongoDB\Client Example: $uriOptions = ['replicaSet' => 'replicaSetName']; Connection URI Example: replicaSet=replicaSetName |
连接选项
TLS 选项
要学习;了解PHP库中提供的 TLS 选项,请参阅 TLS页面。
超时选项
连接选项 | 说明 |
---|---|
Data Type: int MongoDB\Client Example: $uriOptions = ['connectTimeoutMS' => 2000]; Connection URI Example: connectTimeoutMS=2000 | |
Data Type: int MongoDB\Client Example: $uriOptions = ['socketTimeoutMS' => 20000]; Connection URI Example: socketTimeoutMS=20000 |
压缩选项
连接选项 | 说明 |
---|---|
Data Type: string MongoDB\Client Example: $uriOptions = ['compressors' => 'snappy,zstd,zlib']; Connection URI Example: compressors=snappy,zstd,zlib | |
Data Type: int MongoDB\Client Example: $uriOptions = ['zlibCompressionLevel' => 3]; Connection URI Example: zlibCompressionLevel=3 |
写关注选项
连接选项 | 说明 |
---|---|
Data Type: string MongoDB\Client Example: $uriOptions = ['w' => 'majority']; Connection URI Example: w=majority | |
Data Type: int MongoDB\Client Example: $uriOptions = ['wTimeoutMS' => 10000]; Connection URI Example: wTimeoutMS=10000 | |
Data Type: bool MongoDB\Client Example: $uriOptions = ['journal' => true]; Connection URI Example: journal=true |
读关注选项
连接选项 | 说明 |
---|---|
Data Type: string MongoDB\Client Example: $uriOptions = ['readConcernLevel' => 'majority']; Connection URI Example: readConcernLevel=majority |
读取偏好选项
连接选项 | 说明 | ||||||
---|---|---|---|---|---|---|---|
Data Type: MongoDB\Driver\ReadPreference MongoDB\Client Example: $uriOptions = ['readPreference' => 'secondaryPreferred']; Connection URI Example: readPreference=secondaryPreferred | |||||||
Data Type: int MongoDB\Client Example: $uriOptions = ['maxStalenessSeconds' => 30]; Connection URI Example: maxStalenessSeconds=30 | |||||||
Data Type: array MongoDB\Client Example:
连接 URI 示例: |
身份验证选项
要学习;了解PHP库中提供的身份验证选项,请参阅身份验证机制。
服务器选择和发现选项
连接选项 | 说明 |
---|---|
Data Type: int MongoDB\Client Example: $uriOptions = ['localThresholdMS' => 20]; Connection URI Example: localThresholdMS=20 | |
Data Type: int MongoDB\Client Example: $uriOptions = ['serverSelectionTimeoutMS' => 5000]; Connection URI Example: serverSelectionTimeoutMS=5000 | |
Data Type: bool MongoDB\Client Example: $uriOptions = ['serverSelectionTryOnce' => false]; Connection URI Example: serverSelectionTryOnce=false | |
Data Type: int MongoDB\Client Example: $uriOptions = ['heartbeatFrequencyMS' => 30000]; Connection URI Example: heartbeatFrequencyMS=30000 | |
Data Type: int MongoDB\Client Example: $uriOptions = ['socketCheckIntervalMS' => 4000]; Connection URI Example: socketCheckIntervalMS=4000 |
其他配置
连接选项 | 说明 |
---|---|
Data Type: string MongoDB\Client Example: $uriOptions = ['appName' => 'myApp']; Connection URI Example: appName=myApp | |
Data Type: bool MongoDB\Client Example: $uriOptions = ['retryReads' => false]; Connection URI Example: retryReads=false | |
Data Type: bool MongoDB\Client Example: $uriOptions = ['retryWrites' => false]; Connection URI Example: retryWrites=false | |
Data Type: bool MongoDB\Client Example: $uriOptions = ['loadBalanced' => true]; Connection URI Example: loadBalanced=true | |
Data Type: int MongoDB\Client Example: $uriOptions = ['srvMaxHosts' => 5]; Connection URI Example: srvMaxHosts=5 |
API 文档
有关MongoDB\Client
类的更多信息,请参阅以下PHP库API文档:
有关MongoDB\Driver\ReadPreference
类的更多信息,请参阅以下PHP扩展API文档: