Overview
Esta página describe las opciones de conexión y autenticación de MongoDB disponibles en la librería PHP.
Configurar opciones de conexión
Puedes configurar tu conexión especificando opciones en el URI de conexión o pasando éstas al MongoDB\Client constructor.
Uso del URI de conexión
Si pasa una URI de conexión al constructor MongoDB\Client, puede incluir opciones de conexión en la URI como pares <name>=<value>. En el siguiente ejemplo, la URI de conexión establece la opción tls en true y la opción tlsCertificateKeyFile en /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);
Uso de un objeto MongoDB\Client
Puede pasar opciones de conexión al constructor MongoDB\Client en lugar de incluirlas en su URI de conexión.
El siguiente ejemplo muestra cómo utilizar el parámetro $uriOptions del constructor MongoDB\Client para establecer opciones de conexión:
// 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);
Nota
Si especifica una opción tanto en el parámetro $uriOptions como en el URI de conexión, el valor en $uriOptions tiene prioridad.
Opciones del URI de conexión
Las siguientes secciones describen las opciones que puedes configurar para tu conexión con MongoDB. Cada opción de conexión enlaza a su entrada correspondiente en el manual de MongoDB Server.
Importante
Codificación porcentaje
Si el valor de una opción de conexión contiene caracteres especiales, debes
codificación porcentual el valor antes de incluirlo en la URI de conexión. Puedes utilizar el método rawurlencode() para codificar estos valores de acuerdo con la sintaxis de URI especificada en RFC 3986.
No codifiques los signos de porcentaje en las opciones de conexión al incluirlas en el parámetro $uriOptions.
Para aprender más, consulta los siguientes recursos:
rawurlencode en el manual de PHP
Opciones de set de réplicas
Opción de conexión | Descripción |
|---|---|
Data Type: boolMongoDB\Client Example: $uriOptions = ['directConnection' => true];Connection URI Example: directConnection=true | |
Data Type: stringMongoDB\Client Example: $uriOptions = ['replicaSet' => 'replicaSetName'];Connection URI Example: replicaSet=replicaSetName |
Opciones de conexión
Opciones de TLS
Para aprender sobre las opciones de TLS disponibles en la librería de PHP, consulta la PáginaTLS.
Opciones de tiempo de espera
Opción de conexión | Descripción |
|---|---|
Data Type: intMongoDB\Client Example: $uriOptions = ['connectTimeoutMS' => 2000];Connection URI Example: connectTimeoutMS=2000 | |
Data Type: intMongoDB\Client Example: $uriOptions = ['socketTimeoutMS' => 20000];Connection URI Example: socketTimeoutMS=20000 |
Opciones de compresión
Opción de conexión | Descripción |
|---|---|
Data Type: stringMongoDB\Client Example: $uriOptions = ['compressors' => 'snappy,zstd,zlib'];Connection URI Example: compressors=snappy,zstd,zlib | |
Data Type: intMongoDB\Client Example: $uriOptions = ['zlibCompressionLevel' => 3];Connection URI Example: zlibCompressionLevel=3 |
Opciones de nivel de confirmación de escritura
Opción de conexión | Descripción |
|---|---|
Data Type: stringMongoDB\Client Example: $uriOptions = ['w' => 'majority'];Connection URI Example: w=majority | |
Data Type: intMongoDB\Client Example: $uriOptions = ['wTimeoutMS' => 10000];Connection URI Example: wTimeoutMS=10000 | |
Data Type: boolMongoDB\Client Example: $uriOptions = ['journal' => true];Connection URI Example: journal=true |
Opciones de readConcern
Opción de conexión | Descripción |
|---|---|
Data Type: stringMongoDB\Client Example: $uriOptions = ['readConcernLevel' => 'majority'];Connection URI Example: readConcernLevel=majority |
Opciones de preferencia de lectura
Opción de conexión | Descripción | ||||||
|---|---|---|---|---|---|---|---|
Data Type: MongoDB\Driver\ReadPreference MongoDB\Client Example: $uriOptions = ['readPreference' => 'secondaryPreferred'];Connection URI Example: readPreference=secondaryPreferred | |||||||
Data Type: intMongoDB\Client Example: $uriOptions = ['maxStalenessSeconds' => 30];Connection URI Example: maxStalenessSeconds=30 | |||||||
Data Type: arrayMongoDB\Client Example: Ejemplo de URI de conexión: |
Opciones de autenticación
Para aprender las opciones de autenticación disponibles en la librería PHP, consulta Mecanismos de autenticación.
Opciones de selección y descubrimiento de servidores
Opción de conexión | Descripción |
|---|---|
Data Type: intMongoDB\Client Example: $uriOptions = ['localThresholdMS' => 20];Connection URI Example: localThresholdMS=20 | |
Data Type: intMongoDB\Client Example: $uriOptions = ['serverSelectionTimeoutMS' => 5000];Connection URI Example: serverSelectionTimeoutMS=5000 | |
Data Type: boolMongoDB\Client Example: $uriOptions = ['serverSelectionTryOnce' => false];Connection URI Example: serverSelectionTryOnce=false | |
Data Type: intMongoDB\Client Example: $uriOptions = ['heartbeatFrequencyMS' => 30000];Connection URI Example: heartbeatFrequencyMS=30000 | |
Data Type: intMongoDB\Client Example: $uriOptions = ['socketCheckIntervalMS' => 4000];Connection URI Example: socketCheckIntervalMS=4000 |
Varias configuraciones
Opción de conexión | Descripción |
|---|---|
Data Type: stringMongoDB\Client Example: $uriOptions = ['appName' => 'myApp'];Connection URI Example: appName=myApp | |
Data Type: boolMongoDB\Client Example: $uriOptions = ['retryReads' => false];Connection URI Example: retryReads=false | |
Data Type: boolMongoDB\Client Example: $uriOptions = ['retryWrites' => false];Connection URI Example: retryWrites=false | |
Data Type: boolMongoDB\Client Example: $uriOptions = ['loadBalanced' => true];Connection URI Example: loadBalanced=true | |
Data Type: intMongoDB\Client Example: $uriOptions = ['srvMaxHosts' => 5];Connection URI Example: srvMaxHosts=5 |
Documentación de la API
Para obtener más información sobre la clase MongoDB\Client, consulta la siguiente documentación de la API de la biblioteca PHP:
Para obtener más información sobre la clase MongoDB\Driver\ReadPreference, consulte la siguiente documentación de la API de la extensión PHP: