Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Opções de conexão

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 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

Especifica o nome do aplicação que a Biblioteca MongoDB PHP envia ao MongoDB deployment como parte da negociação. A
especificação de appName pode ajudá-lo a identificar atividades relacionadas a esse aplicação nos registros do servidor .

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

Especifica o banco de dados usado para autenticar.
O padrão desta opção é admin para mecanismos de autenticação baseados em SCRAM, $external para o MONGODB-X509 mecanismo e o nome do banco de dados ou $external para o PLAIN mecanismo.

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

Especifica o tempo, em milésimos de segundo, que o tempo médio de ida e volta entre o driver e o servidor pode durar em comparação com o menor tempo de ida e volta de todos os servidores adequados.
Um valor de 0 indica nenhuma janela de latência, portanto, somente o servidor com o menor tempo médio de viagem de ida e volta é elegível.

maxStalenessSeconds

-1, ou qualquer número inteiro maior ou igual a 90

-1

Especifica o atraso máximo, em segundos, atrás do nó primário que um nó secundário pode ser considerado para a operação fornecida.
O valor desta opção deve ser 90 de pelo menos, ou a operação gera um erro. Um valor de -1 significa que não há atraso máximo.

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

Especifica a configuração TLS para a biblioteca PHP do MongoDB usar em suas conexões com o servidor.
Por padrão, o TLS está desativado.

tlsAllowInvalidCertificates

Boolean

false

Especifica se a biblioteca PHP do MongoDB retorna um erro se o servidor apresentar um certificado inválido.
Recomendamos configurar esta opção para true somente em ambientes de teste para evitar a criação de vulnerabilidades de segurança em seu aplicação.

tlsCAFile

String

Veja a descrição

Especifica o caminho para o arquivo de autoridade de certificação (CA) que a biblioteca PHP do MongoDB usa para TLS.
Se você não especificar esta opção, o driver utilizará os certificados raiz Mozilla da webpki-roots crate.

tlsCertificateKeyFile

String

none

Especifica o caminho para o arquivo de certificado que a biblioteca PHP do MongoDB apresenta ao servidor para verificar sua identidade.
Se você não definir essa opção, a Biblioteca PHP do MongoDB não tentará verificar sua identidade com o servidor.

tlsInsecure

Boolean

false

Especifica se a biblioteca PHP do MongoDB retorna um erro se o servidor apresentar um certificado inválido.
Recomendamos configurar esta opção para true somente em ambientes de teste para evitar a criação de vulnerabilidades de segurança em seu aplicação.

w

inteiro ou string não negativo

none

Solicita confirmação de que a operação se propagou para um número específico ou uma variedade de servidores.
Para saber mais, consulte Write Concern no manual do servidor.

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

Especifica o campo de nível da zlib compressão do se você utilizar este compressor.
Definir um valor de seleciona o -1 nível de compressão padrão6 ().
Definir um valor de 0 especifica nenhuma compressão e definir um valor de 9 especifica compressão máxima.

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 driver_options , conforme mostrado no exemplo a seguir:

'connections' => [
'mongodb' => [
'dsn' => 'mongodb+srv://mongodb0.example.com/',
'driver' => 'mongodb',
'database' => 'sample_mflix',
'driver_options' => [
'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.

A partir de Laravel MongoDB v5.0, id é um alias para o campo _id em documentos MongoDB , e a biblioteca converte automaticamente id para _id para campos de nível superior e incorporados ao consultar e armazenar dados.

Ao usar o Laravel MongoDB v5.3 ou posterior, você pode desabilitar a conversão automática de id para _id para documentos incorporados. Para fazer isso, execute uma das seguintes ações:

  1. Defina a configuração rename_embedded_id_field como false no seu arquivo config/database.php :

    'connections' => [
    'mongodb' => [
    'dsn' => 'mongodb+srv://mongodb0.example.com/',
    'driver' => 'mongodb',
    'database' => 'sample_mflix',
    'rename_embedded_id_field' => false,
    // Other settings
    ],
    ],
  2. Passe false para o método setRenameEmbeddedIdField() em seu aplicação:

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

Importante

Recomendamos usar essa opção apenas para oferecer compatibilidade com esquemas de documento existentes. Em novos projetos, evite usar id para nomes de campo em documentos incorporados, para que você possa manter o comportamento padrão do Laravel MongoDB.