Docs Menu
Docs Home
/ /

Opciones de conexión

En esta guía, aprenderá sobre las opciones de conexión, autenticación y controlador, y cómo especificarlas en la configuración de conexión a la base de datos de su aplicación Laravel. Las opciones de conexión se pasan a la biblioteca PHP de MongoDB, que administra las conexiones a la base de datos.

Para obtener más información sobre la biblioteca PHP de MongoDB, consulte Documentación de la biblioteca PHP de MongoDB.

Esta guía cubre los siguientes temas:

Aprenda cómo agregar opciones comunes de conexión y autenticación a su archivo de configuración en las siguientes secciones:

Puede especificar opciones de conexión o autenticación en su aplicación web Laravel. config/database.php archivo de configuración utilizando uno de los siguientes métodos:

  • Agregue la configuración y el valor como un elemento de la matriz en el elemento de la matriz options.

  • Agregue la configuración y el valor como un parámetro de cadena de consulta en la cadena de conexión especificada en el elemento de matriz dsn.

Para especificar una opción en la matriz options, agregue su nombre y valor como un elemento de la matriz, como se muestra en el siguiente ejemplo:

'connections' => [
'mongodb' => [
'dsn' => 'mongodb+srv://mongodb0.example.com/',
'driver' => 'mongodb',
'database' => 'sample_mflix',
'options' => [
'appName' => 'myLaravelApp',
'compressors' => 'zlib',
'zlibCompressionLevel' => 7,
],
],
],

Para especificar opciones como parámetros en la cadena de conexión, utilice el siguiente formato de sintaxis de cadena de consulta:

  • Agregue el carácter de signo de interrogación, ?, para separar la información del host de los parámetros.

  • Agregue las opciones formateándolas como <option>=<value>.

  • Inserte el carácter comercial, &, entre cada par de opciones y valores para separarlos.

El siguiente ejemplo de configuración muestra la sintaxis del parámetro de la cadena de conexión:

'dsn' => 'mongodb+srv://mongodb0.example.com/?appName=myLaravelApp&compressors=zlib',

La siguiente tabla describe una lista de opciones de conexión y autenticación y sus valores predeterminados:

Nombre de la opción
Valores permitidos
Valor por defecto
Descripción

appName

String

Ninguno

Specifies the application name that the MongoDB PHP Library sends the MongoDB deployment as part of the handshake.
Specifying appName can help you identify activities related to that application in the server logs.

mecanismo de autenticación

String

Ninguno

Especifica el mecanismo de autenticación que se utilizará. Si no se especifica esta opción, el controlador utiliza el mecanismo de autenticación predeterminado. Para obtener más información, consulte Autenticación en el manual del servidor.

Propiedades del mecanismo de autenticación

String

Ninguno

Especifica más propiedades relacionadas con el mecanismo de autenticación establecido en la opción authMechanism.

authSource

String

Ver descripción

Specifies the database used to authenticate.
This option defaults to admin for SCRAM-based authentication mechanisms, $external for the MONGODB-X509 mechanism, and the database name or $external for the PLAIN mechanism.

compresores

Una lista de cadenas separadas por comas

Ninguno

Especifica los compresores de datos que la librería MongoDB PHP utiliza para reducir la cantidad de datos de red enviados entre MongoDB y tu aplicación en el orden especificado.

connectTimeoutMS

Non-negative integer

10000 (10 segundos)

Especifica el tiempo de espera de conexión, en milisegundos, que se pasa a cada flujo TCP subyacente cuando intenta conectarse al servidor.

directConnection

Booleano

false

Especifica si se debe conectar directamente a un solo host en lugar de detectar y conectarse a todos los servidores del clúster. Para obtener más información sobre esta configuración, consulte Conexión directa en la Guía de conexión.

heartbeatFrequencyMS

Entero mayor o igual a 500

10000 (10 segundos)

Especifica el tiempo en milisegundos que cada hilo de supervisión espera entre la realización de comprobaciones del servidor.

journal

Booleano

false

Solicita reconocimiento de que la operación se propagó al diario en disco.

localThresholdMS

Non-negative integer

15

Specifies the time in milliseconds that the average round-trip time between the driver and server can last compared to the shortest round-trip time of all the suitable servers.
A value of 0 indicates no latency window, so only the server with the lowest average round-trip time is eligible.

maxStalenessSeconds

-1, o cualquier número entero mayor o igual a 90

-1

Specifies the maximum lag, in seconds, behind the primary node that a secondary node can be considered for the given operation.
This option's value must be at least 90, or the operation raises an error. A value of -1 means there is no maximum lag.

readConcernLevel

String

Ninguno

Especifica la preocupación de lectura predeterminada para las operaciones realizadas por la biblioteca PHP de MongoDB. Para obtener más información, consulte la preocupación de lectura en el manual del servidor.

readPreference

String

primary

Especifica cómo la biblioteca PHP de MongoDB enruta una operación de lectura a los miembros del conjunto de réplicas. Para obtener más información, consulte Preferencia de lectura en el manual del servidor.

readPreferenceTags

Una lista de pares clave-valor separados por comas

Ninguno

Especifica qué miembros del conjunto de réplicas se consideran para las operaciones. Cada instancia de esta clave es un conjunto de etiquetas independiente. El controlador comprueba cada conjunto de etiquetas hasta encontrar uno o más servidores con cada etiqueta.

replicaSet

String

Ninguno

Especifica el nombre del conjunto de réplicas al que se conecta la biblioteca PHP MongoDB.

retryReads

Booleano

true

Especifica si la biblioteca PHP MongoDB vuelve a intentar una operación de lectura si la operación falla.

Tiempo de espera de selección del servidor MS

Non-negative integer

30000 (30 segundos)

Especifica el tiempo en milisegundos que la biblioteca PHP de MongoDB espera para seleccionar un servidor para una operación antes de expirar.

tls

Booleano

false

Specifies the TLS configuration for the MongoDB PHP Library to use in its connections with the server.
By default, TLS is off.

tlsPermitirCertificadosInválidos

Booleano

false

Specifies whether the MongoDB PHP Library returns an error if the server presents an invalid certificate.
We recommend setting this option to true only in testing environments to avoid creating security vulnerabilities in your application.

tlsCAFile

String

Ver descripción

Specifies the path to the certificate authority (CA) file that the MongoDB PHP Library uses for TLS.
If you do not specify this option, the driver uses the Mozilla root certificates from the webpki-roots crate.

tlsCertificateKeyFile

String

Ninguno

Specifies the path to the certificate file that MongoDB PHP Library presents to the server to verify its identity.
If you do not set this option, the MongoDB PHP Library does not attempt to verify its identity with the server.

tlsInsecure

Booleano

false

Specifies whether the MongoDB PHP Library returns an error if the server presents an invalid certificate.
We recommend setting this option to true only in testing environments to avoid creating security vulnerabilities in your application.

w

Entero o cadena no negativo

Ninguno

Requests acknowledgment that the operation has propagated to a specific number or variety of servers.
To learn more, see Write Concern in the Server manual.

wTimeoutMS

Non-negative integer

Sin tiempo de espera

Especifica un límite de tiempo, en milisegundos, para la operación de escritura. Si una operación no se propaga al nivel solicitado dentro del límite de tiempo, la biblioteca PHP de MongoDB genera un error.

zlibCompressionLevel

Entero entre -1 y 9 (inclusive)

-1

Specifies the level field of the zlib compression if you use that compressor.
Setting a value of -1 selects the default compression level (6).
Setting a value of 0 specifies no compression, and setting a value of 9 specifies maximum compression.

Para ver una lista completa de las opciones de conexión, consulte la sección "Opciones de cadena de conexión" de la guía "Cadenas de conexión" en el manual del servidor. Seleccione PHP en la lista. Select your language Menú desplegable en el lado derecho de la página.

Las opciones del controlador modifican el comportamiento de la biblioteca PHP MongoDB, que administra las conexiones y todas las operaciones entre una aplicación Laravel y MongoDB.

Puedes especificar las opciones del controlador en el archivo de configuración config/database.php de tu aplicación web de Laravel. Para añadir opciones del controlador, añade la configuración y el valor como un elemento de la matriz driver_options, como se muestra en el siguiente ejemplo:

'connections' => [
'mongodb' => [
'dsn' => 'mongodb+srv://mongodb0.example.com/',
'driver' => 'mongodb',
'database' => 'sample_mflix',
'driver_options' => [
'serverApi' => 1,
'allow_invalid_hostname' => false,
],
],
]

Consulte la sección de matriz $driverOptions de la documentación de la biblioteca PHP de MongoDB para obtener una lista de opciones de controlador.

A partir de Laravel MongoDB v5.0, id es un alias para el campo _id en los documentos MongoDB, y la biblioteca convierte automáticamente id en _id tanto para los campos de nivel superior como para los incrustados al consultar y almacenar datos.

Al usar Laravel MongoDB v5.3 o posterior, puede deshabilitar la conversión automática de id a _id para documentos incrustados. Para ello, realice una de las siguientes acciones:

  1. Establezca la configuración rename_embedded_id_field en false en su archivo config/database.php:

    'connections' => [
    'mongodb' => [
    'dsn' => 'mongodb+srv://mongodb0.example.com/',
    'driver' => 'mongodb',
    'database' => 'sample_mflix',
    'rename_embedded_id_field' => false,
    // Other settings
    ],
    ],
  2. Pase false al método setRenameEmbeddedIdField() en su aplicación:

    DB::connection('mongodb')->setRenameEmbeddedIdField(false);

Importante

Recomendamos usar esta opción solo para garantizar la compatibilidad con los esquemas de documentos existentes. En proyectos nuevos, evite usar id para los nombres de campo en documentos incrustados para mantener el comportamiento predeterminado de Laravel MongoDB.

Volver

Guía de Conexión

En esta página