Menu Docs
Página inicial do Docs
/ / /
Driver GO
/ /

Guia de conexão

Nesta página

  • Visão geral
  • URI de conexão
  • Outras maneiras de se conectar ao MongoDB

Neste guia, você aprenderá como se conectar a uma instância do MongoDB ou a uma implantação de conjunto de réplicas usando o driver Go.

Você pode usar o driver Go para se conectar a implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço fully managed para implantações do MongoDB na cloud

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

Um URI de conexão, também conhecido como cadeia de conexão, informa ao driver como se conectar ao MongoDB e como se comportar enquanto estiver conectado.

O exemplo a seguir explica cada parte de um exemplo de URI de conexão:

Cada parte da connection string

Neste exemplo, usamos mongodb para o protocolo, que especifica o formato de cadeias de conexão padrão. Você também pode usar o formato de conexão de seed list de DNS caso deseje mais flexibilidade de implantação e a capacidade de alterar os servidores em rotação sem reconfigurar os clientes.

A próxima parte da string de conexão contém seu nome de usuário do banco de dados e, se você estiver usando autenticação baseada em senha, a própria senha. Substitua o valor de user pelo nome de usuário do banco de dados e pass pela senha. Se você estiver usando um mecanismo de autenticação que não requer um nome de usuário e senha, omita esta parte do URI de conexão.

A próxima parte da cadeia de conexão especifica o nome do host ou o endereço IP e a porta da instância do MongoDB. No exemplo anterior, usamos sample.host como nome de host e 27017 como porta. Substitua esses valores para apontar para a sua instância MongoDB.

A última parte da string de conexão especifica as opções de conexão e autenticação. No exemplo, definimos duas opções de conexão: maxPoolSize=20 w=majoritye. Para saber mais sobre as opções de conexão, consulte o guia Opções de conexão.

Para se conectar ao MongoDB, você deve criar um cliente. Um cliente gerencia conexões e executa comandos de banco de dados.

Dica

Reutilize seu cliente

Recomendamos que você reutilize seu cliente entre sessões e operações. Você pode utilizar a mesma Client instância do para executar múltiplas tarefas, em vez de criar outra a cada vez. O Client tipo de é seguro para uso concorrente por várias goroutines. Para saber mais sobre como os pool de conexões funcionam no driver, consulte a página de dúvidas frequentes.

Você pode criar um cliente que use sua cadeia de conexão e outras opções do cliente passando um objeto ClientOptions para o método Connect().

Para especificar seu URI de conexão, passe-o para o método ApplyURI(), que retorna uma nova instância do ClientOptions. Para definir quaisquer outras opções, chame o método assistente relevante a partir do pacote options.

Para saber mais sobre as opções de conexão, consulte a seção Opções de conexão. Para saber mais sobre como criar um cliente, consulte a documentação da API para Cliente e Connect().

Você pode definir a versão da Stable API como uma opção para evitar alterações interruptivas ao atualizar para uma nova versão do servidor. Para saber mais sobre o recurso Stable API, consulte a página Stable API.

O código a seguir mostra como você pode criar um cliente que utiliza uma cadeia de conexão do Atlas e a versão da Stable API, conectar-se ao MongoDB e verificar se a conexão foi bem-sucedida:

// Connects to MongoDB and sets a Stable API version
package main
import (
"context"
"fmt"
"log"
"os"
"go.mongodb.org/mongo-driver/v2/bson"
"go.mongodb.org/mongo-driver/v2/mongo"
"go.mongodb.org/mongo-driver/v2/mongo/options"
)
func main() {
var uri string
if uri = os.Getenv("MONGODB_URI"); uri == "" {
log.Fatal("You must set your 'MONGODB_URI' environment variable. See\n\t https://mongodb.com/pt-br/docs/drivers/go/current/usage-examples/")
}
// Use the SetServerAPIOptions() method to set the Stable API version to 1
serverAPI := options.ServerAPI(options.ServerAPIVersion1)
opts := options.Client().ApplyURI(uri).SetServerAPIOptions(serverAPI)
// Create a new client and connect to the server
client, err := mongo.Connect(opts)
if err != nil {
panic(err)
}
defer func() {
if err = client.Disconnect(context.TODO()); err != nil {
panic(err)
}
}()
// Send a ping to confirm a successful connection
var result bson.M
if err := client.Database("admin").RunCommand(context.TODO(), bson.D{{"ping", 1}}).Decode(&result); err != nil {
panic(err)
}
fmt.Println("Pinged your deployment. You successfully connected to MongoDB!")
}

Dica

Siga o Guia de início rápido para recuperar sua cadeia de conexão do Atlas.

Observação

Para saber mais sobre como se conectar ao Atlas sem servidor, consulte a página Limitações da instância sem servidor para identificar a versão mínima de driver necessária.

Se estiver se conectando a uma única instância ou conjunto de réplicas do servidor MongoDB que não esteja hospedado no Atlas, consulte as seções a seguir para saber como se conectar.

Se você precisa executar um servidor MongoDB em sua máquina local para fins de desenvolvimento, complete as seguintes etapas:

  1. Baixe a versão Comunidade ou Enterprise do MongoDB Server.

  2. Instale e configure o servidor MongoDB.

  3. Inicie o servidor.

Importante

Sempre proteja seu servidor do MongoDB contra ataques maliciosos. Consulte nossa Lista de verificação de segurança para obter uma lista de recomendações de segurança.

Depois de iniciar com êxito o servidor MongoDB, especifique a connection string no código de conexão do driver.

Se o servidor MongoDB estiver sendo executado localmente, você poderá usar a connection string "mongodb://localhost:<port>", em que <port> é o número da porta que você configurou no servidor para escutar as conexões de entrada.

Se você quiser especificar um nome de host ou endereço IP diferente, consulte a entrada do Manual do servidor sobre strings de conexão.

Para testar se você pode se conectar ao servidor, substitua a cadeia de conexão pela do localhost no exemplo de código anterior.

Uma implantação do conjunto de réplicas MongoDB é um grupo de instâncias conectadas que armazenam o mesmo conjunto de dados. Esta configuração fornece redundância de dados e alta disponibilidade de dados.

Para conectar a uma implantação do conjunto de réplicas, especifique o nome do host e os números de porta de cada instância, separados por vírgulas, e o nome do conjunto de réplicas como o valor do parâmetro replicaSet na cadeia de conexão. No exemplo seguinte, os nomes de host são host1, host2 e host3, e os números de porta são todos 27017. O nome do conjunto de réplicas é myRS.

mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRS

Ao se conectar a um conjunto de réplicas, o driver realiza as seguintes ações por padrão:

  • Descobre todos os membros do conjunto de réplicas quando recebe o endereço de qualquer membro.

  • Despacha operações para o membro apropriado, como instruções para gravar no primário.

Dica

Você pode especificar apenas um host para se conectar a um conjunto de réplicas. No entanto, para garantir a conectividade quando o host especificado não estiver disponível, forneça a lista completa de hosts.

Para forçar operações no host designado no URI de conexão, especifique a opção directConnection. As conexões diretas exibem o seguinte comportamento:

  • Não oferecem suporte a strings SRV.

  • Elas falham nas gravações quando o host especificado não é o primary.

  • Eles exigem que você especifique uma preferência de leitura secundária quando o host especificado não é o nó primary.

Voltar

Conexões