Menu Docs
Página inicial do Docs
/ / /
Laravel MongoDB
/ /

Opções de conexão

Nesta página

  • Visão geral
  • Opções de conexão e autenticação
  • Adicionar opções de conexão e autenticação
  • Descrições das opções
  • Opções de conexão do driver

Neste guia, você aprenderá sobre as opções de conexão, autenticação e driver e como especificá-las na configuração da conexão com o banco de dados do seu aplicativo Laravel. As opções de conexão são passadas para a Biblioteca PHP do MongoDB, que gerencia suas conexões de banco de dados.

Para saber mais sobre a Biblioteca PHP do MongoDB, consulte a documentação da Biblioteca PHP do MongoDB .

Este guia aborda os seguintes tópicos:

Saiba como adicionar opções comuns de conexão e autenticação ao seu arquivo de configuração nas seções a seguir:

Você pode especificar opções de conexão ou autenticação no arquivo de configuração config/database.php do seu aplicativo da web Laravel usando um dos seguintes métodos:

  • Adicione a configuração e o valor como um item de array no item de array options .

  • Anexe a configuração e o valor como um parâmetro de string de query na connection string especificada no item de array dsn .

Para especificar uma opção no array options , adicione seu nome e valor como um item de array, conforme mostrado no exemplo a seguir:

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

Para especificar opções como parâmetros na connection string, use a seguinte formatação de sintaxe da query string:

  • Adicione o caractere de ponto de interrogação, ?, para separar as informações do host dos parâmetros.

  • Adicione as opções formatando-as como <option>=<value>.

  • Insira o caractere ampersand, &, entre cada opção e par de valores para separá-los.

O exemplo de configuração a seguir mostra a sintaxe do parâmetro da connection string:

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

A tabela a seguir descreve uma lista de opções de conexão e autenticação e seus valores padrão:

Nome da opção
Valores aceitos
Valor padrão
Descrição
appName
String
none
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.
authMechanism
String
none
Especifica qual mecanismo de autenticação usar. Se você não especificar esta opção, o driver utilizará o mecanismo de autenticação padrão. Para saber mais, consulte Autenticação no manual do servidor MongoDB.
authMechanismProperties
String
none
Especifica mais propriedades relacionadas ao mecanismo de autenticação definido na opção authMechanism .
authSource
String
Veja a descrição
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.
compressors
Uma lista de strings separadas por vírgula
none
Especifica compressores de dados que a biblioteca PHP do MongoDB usa para reduzir a quantidade de dados de rede passados entre o MongoDB e seu aplicativo na ordem especificada.
connectTimeoutMS
Non-negative integer
10000 (10 segundos)
Especifica o tempo limite de conexão, em milissegundos, passado para cada fluxo TCP subjacente ao tentar se conectar ao servidor.
directConnection
Boolean
false
Especifica se deseja conectar-se diretamente a um único host em vez de descobrir e conectar-se a todos os servidores no cluster. Para saber mais sobre essa configuração, consulte Conexão direta no Guia de conexão.
heartbeatFrequencyMS
Inteiro maior ou igual a 500
10000 (10 segundos)
Especifica o tempo, em milésimos de segundo, que cada thread de monitoramento espera entre a execução de verificações do servidor.
journal
Boolean
false
Solicita confirmação de que a operação foi propagada para o diário em 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.
maxIdleTimeMS
Non-negative integer
0
Specifies the time in milliseconds that a connection can remain idle in a connection pool before the server closes it.
A value of 0 indicates that the client does not close idle connections.
maxStalenessSeconds
-1, ou qualquer número inteiro maior ou 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.
maxPoolSize
Non-negative integer
10
Specifies the maximum number of connections that the MongoDB PHP Library can create in a connection pool for a given server.
If you attempt an operation while the value of maxPoolSize connections are checked out, the operation waits until an in-progress operation finishes and the connection returns to the pool.
minPoolSize
Non-negative integer
0
Specifies the minimum number of connections available in a server's connection pool at a given time.
If fewer than minPoolSize connections are in the pool, the server adds connections in the background up to the value of minPoolSize.
readConcernLevel
String
none
Especifica a read concern padrão para operações realizadas pela Biblioteca PHP do MongoDB. Para saber mais, consulte Read Concern no manual do Servidor MongoDB.
readPreference
String
primary
Especifica como a biblioteca PHP do MongoDB roteia uma operação de leitura para nós do conjunto de réplicas. Para saber mais, consulte Preferência de leitura no manual do servidor MongoDB.
readPreferenceTags
Uma lista de pares de valores-chave separados por vírgula
none
Especifica quais membros do conjunto de réplicas são considerados para operações. Cada instância desta chave é um conjunto de tags separado. O driver verifica cada conjunto de tags até encontrar um ou mais servidores com cada tag.
replicaSet
String
none
Especifica o nome do conjunto de réplicas ao qual a biblioteca PHP do MongoDB se conecta.
retryReads
Boolean
true
Especifica se a Biblioteca MongoDB PHP tenta novamente uma operação de leitura se a operação falhar.
serverSelectionTimeoutMS
Non-negative integer
30000 (30 segundos)
Especifica o tempo em milésimos de segundo que a biblioteca PHP do MongoDB espera para selecionar um servidor para uma operação antes de atingir o tempo limite.
tls
Boolean
false
Specifies the TLS configuration for the MongoDB PHP Library to use in its connections with the server.
By default, TLS is off.
tlsAllowInvalidCertificates
Boolean
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
Veja a descrição
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
none
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
Boolean
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
inteiro ou string não negativo
none
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
Sem tempo limite
Especifica um limite de tempo, em milésimos de segundo, do write concern. Se uma operação não tiver sido propagada para o nível solicitado dentro do limite de tempo, a biblioteca PHP do MongoDB gerará um erro.
zlibCompressionLevel
inteiro entre -1 e 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 uma lista completa de opções de conexão, consulte a seção Opções de string de conexão do guia Connection strings no manual do servidor MongoDB. Selecione PHP no menu suspenso Select your language no lado direito da página.

As opções de driver modificam o comportamento da biblioteca PHP do MongoDB, que gerencia conexões e todas as operações entre um aplicativo Laravel e o MongoDB.

Você pode especificar as opções de driver no arquivo de configuração config/database.php do seu aplicativo web Laravel. Para adicionar opções de driver, adicione a configuração e o valor como um item de array no item de array driverOptions , conforme mostrado no exemplo a seguir:

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

Consulte a seção $driverOptions: array da documentação da Biblioteca PHP do MongoDB para obter uma lista de opções de driver.

Voltar

Guia de conexão

Próximo

Habilitar e configurar TLS