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.
Menu Docs

Especificar opções de conexão

Esta página descreve as opções de conexão disponíveis no driver Go e explica como aplicá-las à sua conexão MongoDB.

As seções a seguir descrevem como você pode especificar opções de conexão usando uma string de conexão ou uma estrutura ClientOptions.

Você pode especificar opções de conexão em uma string de conexão passando uma estrutura ClientOptions para o método Connect(). Na string de conexão, você pode incluir opções de conexão na string como pares <name>=<value>. No exemplo a seguir, a string de conexão contém a opção connectTimeoutMS com um valor de 60000 milissegundos e a opção tls com um valor de true:

const uri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

Você também pode encadear opções de conexão ao struct ClientOptions para configurar as definições de conexão. Configurar a conexão dessa maneira facilita a alteração das configurações em tempo de execução, ajuda a detectar erros durante a compilação e oferece mais opções de configuração do que a string de conexão.

O exemplo de código a seguir define a opção Timeout como 60 segundos e habilita o TLS passando uma estrutura tls.Config vazia para o método SetTLSConfig():

opts := options.Client().
SetConnectTimeout(60 * time.Second).
SetTLSConfig(&tls.Config{})
client, _ := mongo.Connect(opts)

Specifies whether to force dispatch all operations to the host. If you specify this option, the driver doesn't accept the SRV connection format. You must use the standard connection URI format instead. To learn more about the SRV connection and the standard connection formats, see the Connection Strings guide in the MongoDB Server manual.

Esta propriedade deve ser configurada para false se você especificar mais de um nome de host.

Tipo de Dados: bool

Valor padrão: false

Exemplo:

const uri = "mongodb://localhost:27017/?directConnection=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O nome do conjunto de réplicas a que se conectar.

Tipo de Dados: string

Valor padrão: nil

Exemplo:

const uri = "mongodb://localhost:27017/?replicaSet=yourReplicaSet"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

Specifies whether to force dispatch all operations to the host. If you specify this option, the driver doesn't accept the SRV connection format. You must use the standard connection URI format instead. To learn more about the SRV connection and the standard connection formats, see the Connection Strings guide in the MongoDB Server manual.

Esta propriedade deve ser configurada para false se você especificar mais de um nome de host.

Tipo de Dados: bool

Valor padrão: false

Exemplo:

opts := options.Client().
SetDirect(true)
client, _ := mongo.Connect(opts)

O nome do conjunto de réplicas a que se conectar.

Tipo de Dados: string

Valor padrão: nil

Exemplo:

opts := options.Client().
SetReplicaSet("yourReplicaSet")
client, _ := mongo.Connect(opts)

Especifica se é necessário o TLS para conexões com o servidor. Se você usar um esquema de "mongodb+srv" ou especificar outras opções de TLS, essa opção será padronizada como true. Caso contrário, o padrão é false.

Tipo de Dados: bool

Valor padrão: nil

Exemplo:

const uri = "mongodb://localhost:27017/?tls=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

Especifica se é necessário o TLS para conexões com o servidor. Se você usar um esquema de "mongodb+srv" ou especificar outras opções de TLS, essa opção será padronizada como true. Caso contrário, o padrão é false.

Tipo de Dados: tls.Config

Valor padrão: false

Exemplo:

opts := options.Client().
SetTLSConfig(&tls.Config{})
client, _ := mongo.Connect(opts)

Para obter mais informações sobre as opções de TLS, consulte o guia Habilitar TLS em uma conexão.

O período de tempo em que o driver tenta estabelecer uma única conexão de soquete TCP com o servidor antes de atingir o tempo limite.

Tipo de dados: intnão negativo

Valor padrão: 30000 Milissegundos

Exemplo:

const uri = "mongodb://localhost:27017/?connectTimeoutMS=60000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

A quantidade de tempo que uma única operação executada no cliente pode ser executada antes de retornar um erro.

Tipo de dados: intnão negativo

Valor padrão: nil

Exemplo:

const uri = "mongodb://localhost:27017/?timeoutMS=30000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O período de tempo em que o driver tenta estabelecer uma única conexão de soquete TCP com o servidor antes de atingir o tempo limite.

Tipo de Dados: time.Duration

Valor padrão: 30 Segundos

Exemplo:

opts := options.Client().
SetConnectTimeout(60 * time.Second)
client, _ := mongo.Connect(opts)

A quantidade de tempo que uma única operação executada no cliente pode ser executada antes de retornar um erro.

Tipo de Dados: time.Duration

Valor padrão: nil

Exemplo:

opts := options.Client().
SetTimeout(30 * time.Second)
client, _ := mongo.Connect(opts)

Os tipos de compactação preferidos, em ordem, para mensagens de wire protocol enviadas ou recebidas do servidor. Você pode habilitar "snappy", "zlib" e "zstd" como dependências opcionais do tempo de compilação. O driver usa o primeiro desses tipos de compactação compatíveis com o servidor.

Tipo de Dados: string (valores separados por vírgula)

Valor padrão: nil

Exemplo:

const uri = "mongodb://localhost:27017/?compressors=zlib,snappy"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O nível de compactação para zlib usar. Essa opção é ignorada se zlib não for especificado como um compressor por meio de ApplyURI ou SetCompressors. Esta opção aceita um valor inteiro entre -1 e 9:

  • -1: (padrão). zlib usa seu nível de compactação padrão (geralmente 6).

  • 0: Sem compactação.

  • 1: Velocidade mais rápida, mas menor compactação.

  • 9: Melhor compactação, mas velocidade mais lenta.

Tipo de Dados: int

Valor padrão: -1

Exemplo:

const uri = "mongodb://localhost:27017/?compressors=zlib&zlibCompressionLevel=6"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O nível de compactação para zstd usar. Essa opção é ignorada se zstd não for especificado como um compressor por meio de ApplyURI ou SetCompressors. Essa opção aceita valores inteiros entre 1 e 20:

  • 1: Velocidade mais rápida, mas menor compactação.

  • 20: Melhor compactação, mas velocidade mais lenta.

Tipo de Dados: int

Valor padrão: 6

Exemplo:

const uri = "mongodb://localhost:27017/?compressors=zstd&zstdCompressionLevel=6"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

Os tipos de compactação preferidos, em ordem, para mensagens de wire protocol enviadas ou recebidas do servidor. Você pode habilitar "snappy", "zlib" e "zstd" como dependências opcionais do tempo de compilação. O driver usa o primeiro desses tipos de compactação compatíveis com o servidor.

Tipo de Dados: []string

Valor padrão: nil

Exemplo:

opts := options.Client().
SetCompressors([]string{"zlib", "snappy"})
client, _ := mongo.Connect(opts)

O nível de compactação para zlib usar. Essa opção é ignorada se zlib não for especificado como um compressor por meio de ApplyURI ou SetCompressors. Esta opção aceita um valor inteiro entre -1 e 9:

  • -1: (Padrão). zlib usa seu nível de compactação padrão (geralmente 6).

  • 0: sem compressão.

  • 1: velocidade mais rápida, mas menor compressão.

  • 9: a melhor compactação, mas a velocidade mais lenta.

Tipo de Dados: int

Valor padrão: -1

Exemplo:

opts := options.Client().
SetCompressors([]string{"zlib"}).
SetZlibLevel(6)
client, _ := mongo.Connect(opts)

O nível de compactação para zstd usar. Essa opção é ignorada se zstd não for especificado como um compressor por meio de ApplyURI ou SetCompressors. Essa opção aceita valores inteiros entre 1 e 20:

Tipo de Dados: int

Valor padrão: 6

Exemplo:

opts := options.Client().
SetCompressors([]string{"zstd"}).
SetZstdLevel(8)
client, _ := mongo.Connect(opts)

For more information on compression, see the Compress Network Traffic guide.

O maior número de clientes ou conexões que o driver pode criar em seu pool de conexões. Esta contagem inclui conexões em uso.

Tipo de dados: intnão negativo

Valor padrão: 100

Exemplo:

const uri = "mongodb://localhost:27017/?maxPoolSize=150"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O número de conexões que o driver cria e mantém no pool de conexões mesmo quando nenhuma operação está ocorrendo. Esta contagem inclui conexões em uso.

Tipo de dados: intnão negativo

Valor padrão: 0

Exemplo:

const uri = "mongodb://localhost:27017/?minPoolSize=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O período de tempo que uma conexão pode ficar inativa antes que o driver a feche.

Tipo de dados: intnão negativo

Valor padrão: 0

Exemplo:

const uri = "mongodb://localhost:27017/?maxIdleTimeMS=8000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O número máximo de conexões que um pool de conexões pode estabelecer simultaneamente.

Tipo de dados: intnão negativo

Valor padrão: 2

Exemplo:

const uri = "mongodb://localhost:27017/?maxConnecting=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O maior número de clientes ou conexões que o driver pode criar em seu pool de conexões. Esta contagem inclui conexões em uso.

Tipo de dados: uint64não negativo

Valor padrão: 100

Exemplo:

opts := options.Client().
SetMaxPoolSize(150)
client, _ := mongo.Connect(opts)

O número de conexões que o driver cria e mantém no pool de conexões mesmo quando nenhuma operação está ocorrendo. Esta contagem inclui conexões em uso.

Tipo de dados: uint64não negativo

Valor padrão: 0

Exemplo:

opts := options.Client().
SetMinPoolSize(3)
client, _ := mongo.Connect(opts)

O período de tempo que uma conexão pode ficar inativa antes que o driver a feche.

Tipo de Dados: time.Duration

Valor padrão: 0

Exemplo:

opts := options.Client().
SetMaxConnIdleTime(8 * time.Second)
client, _ := mongo.Connect(opts)

O número máximo de conexões que um pool de conexões pode estabelecer simultaneamente.

Tipo de dados: uint64não negativo

Valor padrão: 2

Exemplo:

opts := options.Client().
SetMaxConnecting(3)
client, _ := mongo.Connect(opts)

Para saber mais sobre pool de conexões, consulte o Guia de pool de conexões.

O componente w da write concern, que solicita a confirmação de que a operação de escrita se propagou para um número específico de instâncias do MongoDB . O valor padrão é "majority" ou 1, dependendo do número de árbitros e nós de votação. Para saber mais sobre a opção w, consulte Write Concern no manual do MongoDB Server.

Tipo de Dados: int ou string

Valor padrão: 1 ou "majority"

Exemplo:

const uri = "mongodb://localhost:27017/?w=2"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O componente w da write concern, que solicita a confirmação de que a operação de escrita se propagou para um número específico de instâncias do MongoDB . O valor padrão é "majority" ou 1, dependendo do número de árbitros e nós de votação. Para saber mais sobre a opção w, consulte Write Concern no manual do MongoDB Server.

Tipo de Dados: writeconcern.WriteConcern

Valor padrão: 1 ou "majority"

Exemplo:

wc := &writeconcern.WriteConcern{
W: 2,
}
opts := options.Client().SetWriteConcern(wc)
client, _ := mongo.Connect(opts)

O nível de read concern do cliente. Para obter mais informações, consulte a referência read concern no manual do MongoDB Server.

Tipo de Dados: string

Valor padrão: local

Exemplo:

const uri = "mongodb://localhost:27017/?readConcernLevel=majority"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O nível de read concern do cliente. Para obter mais informações, consulte a referência read concern no manual do MongoDB Server.

Tipo de Dados: readconcern.ReadConcern

Valor padrão: nil

Exemplo:

opts := options.Client().
SetReadConcern(readconcern.Majority())
client, _ := mongo.Connect(opts)

The client's default read-preference settings. See Read Preference in the MongoDB Server manual for more information.

Tipo de Dados: string

Valor padrão: primary

Exemplo:

const uri = "mongodb://localhost:27017/?readPreference=primaryPreferred"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

The client's default read-preference settings. See Read Preference in the MongoDB Server manual for more information.

Tipo de Dados: readpref.ReadPref

Valor padrão: readpref.Primary()

Exemplo:

opts := options.Client().
SetReadPreference(readpref.PrimaryPreferred())
client, _ := mongo.Connect(opts)

O mecanismo que o driver usa para autenticar no MongoDB Server. Se você não especificar um mecanismo de autenticação, o driver usará SCRAM-SHA-1 ou SCRAM-SHA-256, dependendo da versão do servidor.

Para saber mais sobre os mecanismos de autenticação disponíveis, consulte os guias Mecanismo de autenticação.

Tipo de Dados: string

Valor padrão: vazio (sem autenticação) ou SCRAM-SHA-256 depois que a autenticação é habilitada

Exemplo:

const uri = "mongodb://user:password@localhost:27017/?authMechanism=PLAIN&authSource=admin"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O mecanismo que o driver usa para autenticar no MongoDB Server. Se você não especificar um mecanismo de autenticação, o driver usará SCRAM-SHA-1 ou SCRAM-SHA-256, dependendo da versão do servidor.

Para saber mais sobre os mecanismos de autenticação disponíveis, consulte os guias Mecanismo de autenticação.

Tipo de Dados: Credential

Valor padrão: vazio (sem autenticação) ou SCRAM-SHA-256 depois que a autenticação é habilitada

Exemplo:

credential := options.Credential{
AuthMechanism: "PLAIN",
AuthSource: "admin",
Username: "user",
Password: "password",
}
opts := options.Client().SetAuth(credential)
client, _ := mongo.Connect(opts)

O período durante o qual o driver tenta selecionar um servidor antes do tempo limite.

Tipo de dados: intnão negativo

Valor padrão: 30000 Milissegundos

Exemplo:

const uri = "mongodb://localhost:27017/?serverSelectionTimeoutMS=40000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

A janela de latência para elegibilidade do servidor. Se a viagem de ida e volta de um servidor demorar mais do que o tempo de ida e volta do servidor mais rápido mais esse valor, o servidor não estará qualificado para seleção.

Tipo de dados: intnão negativo

Valor padrão: 15 Milissegundos

Exemplo:

const uri = "mongodb://localhost:27017/?localThresholdMS=20000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O período durante o qual o driver tenta selecionar um servidor antes do tempo limite.

Tipo de Dados: time.Duration

Valor padrão: 30 Segundos

Exemplo:

opts := options.Client().
SetServerSelectionTimeout(40 * time.Second)
client, _ := mongo.Connect(opts)

A janela de latência para elegibilidade do servidor. Se a viagem de ida e volta de um servidor demorar mais do que o tempo de ida e volta do servidor mais rápido mais esse valor, o servidor não estará qualificado para seleção.

Tipo de Dados: time.Duration

Valor padrão: 15 Milissegundos

Exemplo:

opts := options.Client().
SetLocalThreshold(20 * time.Millisecond)
client, _ := mongo.Connect(opts)

Permite leituras que podem ser repetidas.

Tipo de Dados: bool

Valor padrão: true

Exemplo:

const uri = "mongodb://localhost:27017/?retryReads=false"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

Habilita gravações que podem ser tentadas novamente.

Tipo de Dados: bool

Valor padrão: true

Exemplo:

const uri = "mongodb://localhost:27017/?retryWrites=false"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O número máximo de vezes que o driver deve tentar novamente as operações que falham com um erro de sobrecarga do lado do servidor.

Tipo de dados: intnão negativo

Valor padrão: 2

Exemplo:

const uri = "mongodb://localhost:27017/?maxAdaptiveRetries=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

Permite leituras que podem ser repetidas.

Tipo de Dados: bool

Valor padrão: true

Exemplo:

opts := options.Client().
SetRetryReads(false)
client, _ := mongo.Connect(opts)

Habilita gravações que podem ser tentadas novamente.

Tipo de Dados: bool

Valor padrão: true

Exemplo:

opts := options.Client().
SetRetryWrites(false)
client, _ := mongo.Connect(opts)

O número máximo de vezes que o driver deve tentar novamente as operações que falham com um erro de sobrecarga do lado do servidor.

Tipo de dados: uintnão negativo

Valor padrão: 2

Exemplo:

const uri = "mongodb://localhost:27017/?maxAdaptiveRetries=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O nome do aplicativo que o driver passa para o servidor nos metadados do cliente como parte da confirmação de conexão. O servidor imprime esse valor nos logs do MongoDB uma vez que a conexão é estabelecida. O valor também é registrado nos logs de query lentos e nas coleções de perfil.

Tipo de Dados: string

Valor padrão: nil

Exemplo:

const uri = "mongodb://localhost:27017/?appName=yourAppName"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

Especifica se o driver está se conectando a um balanceador de carga . Você pode definir esta propriedade como true somente se todas as seguintes condições forem atendidas:

  • Você especifica apenas um nome de host

  • Você não está conectando a um conjunto de réplicas

  • Você não está usando a propriedade SrvMaxHosts

  • Você não está usando a propriedade DirectConnection

Tipo de Dados: bool

Valor padrão: false

Exemplo:

const uri = "mongodb://localhost:27017/?loadBalanced=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O maior número de resultados SRV a serem selecionados aleatoriamente ao preencher inicialmente a lista de sementes ou, durante a sondagem SRV, adicionar novos hosts à topologia.

Você pode usar esta propriedade somente se o esquema de cadeia de conexão estiver definido como ConnectionStringScheme.MongoDBPlusSrv. Você não pode usá-lo ao conectar-se a um conjunto de réplicas.

Tipo de dados: intnão negativo

Valor padrão: 0

Exemplo:

opts := options.Client().
SetSRVMaxHosts(5)
client, _ := mongo.Connect(opts)

O nome do serviço dos registros de recursos SRV que o driver recupera para construir sua lista de sementes. O driver utiliza o nome do serviço para criar o URI SRV, que corresponde ao seguinte formato:

_{srvServiceName}._tcp.{hostname}.{domainname}

Essa propriedade substitui o nome do serviço padrão para pesquisa de SRV na descoberta e na pesquisa. O valor padrão é "mongodb".

Você pode usar esta propriedade somente se o esquema de cadeia de conexão estiver definido como ConnectionStringScheme.MongoDBPlusSrv. Você não pode usá-lo ao conectar-se a um conjunto de réplicas.

Tipo de Dados: string

Valor padrão: mongodb

Exemplo:

const uri = "mongodb+srv://localhost/?srvServiceName=yourServiceName"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

O nome do aplicativo que o driver passa para o servidor nos metadados do cliente como parte da confirmação de conexão. O servidor imprime esse valor nos logs do MongoDB uma vez que a conexão é estabelecida. O valor também é registrado nos logs de query lentos e nas coleções de perfil.

Tipo de Dados: string

Valor padrão: nil

Exemplo:

opts := options.Client().
SetAppName("yourAppName")
client, _ := mongo.Connect(opts)

Especifica se o driver está se conectando a um balanceador de carga . Você pode definir esta propriedade como true somente se todas as seguintes condições forem atendidas:

  • Você especifica apenas um nome de host

  • Você não está conectando a um conjunto de réplicas

  • Você não está usando a propriedade SrvMaxHosts

  • Você não está usando a propriedade DirectConnection

Tipo de Dados: bool

Valor padrão: false

Exemplo:

opts := options.Client().
SetLoadBalanced(true)
client, _ := mongo.Connect(opts)

Configure a versão da API enviada ao servidor ao executar comandos. Para obter mais informações sobre a API do servidor, consulte o guia Stable API.

Tipo de Dados: ServerAPIOptions

Valor padrão: nil

Exemplo:

opts := options.Client().
SetServerAPIOptions(options.ServerAPI(options.ServerAPIVersion1))
client, _ := mongo.Connect(opts)

O maior número de resultados SRV a serem selecionados aleatoriamente ao preencher inicialmente a lista de sementes ou, durante a sondagem SRV, adicionar novos hosts à topologia.

Você pode usar esta propriedade somente se o esquema de cadeia de conexão estiver definido como ConnectionStringScheme.MongoDBPlusSrv. Você não pode usá-lo ao conectar-se a um conjunto de réplicas.

Tipo de dados: intnão negativo

Valor padrão: 0

Exemplo:

opts := options.Client().
SetSRVMaxHosts(5)
client, _ := mongo.Connect(opts)

O nome do serviço dos registros de recursos SRV que o driver recupera para construir sua lista de sementes. O driver utiliza o nome do serviço para criar o URI SRV, que corresponde ao seguinte formato:

_{srvServiceName}._tcp.{hostname}.{domainname}

Essa propriedade substitui o nome do serviço padrão para pesquisa de SRV na descoberta e na pesquisa. O valor padrão é "mongodb".

Você pode usar esta propriedade somente se o esquema de cadeia de conexão estiver definido como ConnectionStringScheme.MongoDBPlusSrv. Você não pode usá-lo ao conectar-se a um conjunto de réplicas.

Tipo de Dados: string

Valor padrão: mongodb

Exemplo:

opts := options.Client().
SetSRVServiceName("yourServiceName")
client, _ := mongo.Connect(opts)

Para saber mais sobre as opções que você pode especificar em uma string de conexão, consulte Opções de string de conexão no manual do MongoDB Server.

Para obter mais informações sobre os tipos usados nesta página, consulte a seguinte documentação da API: