Visão geral
Neste guia, você aprenderá a usar uma string de conexão e um objeto MongoClient para se conectar a diferentes tipos de sistemas do MongoDB usando o driver Go.
Dica
Para ver como criar e configurar seu objeto MongoClient, consulte a página Criar um cliente mongo.
Conectar-se ao Atlas
Para se conectar a uma MongoDB deployment no Atlas, inclua os seguintes elementos em sua connection string:
URL do seu cluster Atlas
Nome de usuário do MongoDB
Senha do MongoDB
Em seguida, passe sua connection string para o construtor MongoClient .
Ao se conectar ao Atlas, recomendamos usar a opção de cliente Stable API para evitar alterações significativas quando o Atlas atualizar para uma nova versão do MongoDB Server. Para saber mais sobre o recurso de Stable API , consulte o guia de 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/") } // Uses the SetServerAPIOptions() method to set the Stable API version to 1 serverAPI := options.ServerAPI(options.ServerAPIVersion1) // Defines the options for the MongoDB client opts := options.Client().ApplyURI(uri).SetServerAPIOptions(serverAPI) // Creates a new client and connects 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) } }() // Sends 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!") }
Importante
Novas instâncias sem servidor não podem mais ser criadas e, a partir de 5 2025 de maio, todas as instâncias sem servidor existentes foram migradas. A página Todos os cluster na IU do Atlas mostra para quais tiers suas instâncias são migradas com base no uso.
Conecte-se a sistemas locais
Se você precisa executar um servidor MongoDB em sua máquina local para fins de desenvolvimento, complete as seguintes etapas:
Download the Community or Enterprise version of MongoDB Server.
Instale e configure o servidor MongoDB.
Inicie o servidor.
Importante
Sempre proteja seu servidor do MongoDB contra ataques maliciosos. Consulte a Lista de verificação de segurança no manual do servidor 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.
For more information on how to specify a different hostname or IP address, see Connection Strings in the Server manual.
To test whether you can connect to your server, replace the connection string with your localhost connection string in the preceding code example.
Conecte-se a conjuntos de réplicas
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 um sistema 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 string de conexão. No exemplo de string de conexão a seguir, 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, você deve fornecer a lista completa de hosts para garantir a conectividade quando o host especificado não estiver disponível.
To learn more about replica sets, see the Replication entry in the Server manual.
Conexão direta
Para forçar operações no host designado na string de conexão, especifique a opção directConnection. As conexões diretas exibem o seguinte comportamento:
Não oferecem suporte a strings SRV.
Falham nas gravações quando o host especificado não é o primário.
Elas exigem que você especifique um nó secundário com preferência de leitura secundária quando o host especificado não é o nó primary.
Observação
Conjunto de réplicas no Docker
Quando um conjunto de réplicas é executado no Docker, ele pode expor apenas um endpoint MongoDB . Nesse caso, o conjunto de réplicas não é detectável. Especificar directConnection=false em seu URI de conexão ou deixar essa opção sem definir pode impedir que seu aplicação se conecte a ele.
Em um ambiente de teste ou desenvolvimento, é possível conectar-se ao conjunto de réplicas especificando directConnection=true. Em um ambiente de produção, recomendamos configurar o cluster para que cada instância do MongoDB seja acessível fora da rede virtual do Docker.
Descoberta de serviço DNS
Para usar a descoberta de serviços DNS para procurar o registro DNS SRV do serviço ao qual você está se conectando, especifique o formato de conexão SRV em sua string de conexão. Se você especificar este formato, o driver Go reanalisa automaticamente novos hosts. Seu sistema pode adicionar hosts à topologia sem exigir alterações na configuração do cliente .
O código a seguir mostra uma string de conexão que usa o formato de conexão SRV:
uri := "mongodb+srv://<hostname>/"
To learn more about the SRV connection format, see the SRV Connection Format entry in the MongoDB Server manual.
Documentação da API
Para saber mais sobre como conectar a diferentes instâncias MongoDB com um MongoClient, consulte a seguinte documentação da API: