Visão geral
Neste guia, você aprenderá como se conectar a uma implantação do MongoDB Atlas, a uma instância do MongoDB ou a um conjunto de réplicas usando o driver Go.
Para se conectar a um sistema MongoDB , você precisa das duas coisas a seguir:
URI de conexão, também conhecido como string de conexão, que informa ao driver Go a qual deployment do MongoDB se conectar.
objeto MongoClient, que cria a conexão e executa operações no MongoDB deployment.
Você pode usar o options.Client() para personalizar a forma como o driver Go se comporta enquanto conectado ao MongoDB.
URI de conexão
Uma connection string padrão inclui os seguintes componentes:
Componente  | Descrição  | 
|---|---|
  | Obrigatório. Um prefixo que identifica isso como uma string no formato de conexão padrão.  | 
  | Opcional. Credenciais de autenticação. Se você incluir estes, o cliente autenticará o usuário no banco de dados especificado no   | 
  | Obrigatório. O host e o número da porta opcional em que o MongoDB está sendo executado. Se você não incluir o número da porta, o driver usará a porta padrão,   | 
  | Opcional. O authentication banco de dados de autenticação a ser usado se a string de conexão incluir as credenciais de autenticação   | 
  | Opcional. Uma string de consulta que especifica opções específicas de conexão como   | 
Dica
Para recuperar uma string de conexão para uma implementação do Atlas, siga o guia de Início Rápido.
Para obter mais informações sobre a criação de uma connection string, consulte Connection strings na documentação do MongoDB Server .
Variável de ambiente
Você pode acessar sua string de conexão como uma variável de ambiente usando o código a seguir:
uri := os.Getenv("MONGODB_URI") 
Você pode usar o GoDotEnv para definir sua variável de ambiente.
Adicione a seguinte configuração de aplicação no seu arquivo .env na raiz do seu projeto, substituindo os espaços reservados pelos valores para a string de conexão do seu sistema. Para saber mais, consulte a documentação do GoDotEnv.
MONGODB_URI=mongodb+srv://<db_username>:<db_password>@<cluster-url>?retryWrites=true&w=majority 
Crie um cliente para conectar ao MongoDB Atlas
Para se conectar ao MongoDB, você deve criar um cliente. Um cliente gerencia conexões e executa comandos de banco de dados.
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 ClientOptions. Para definir quaisquer outras opções, chame o método de assistente relevante a partir do pacote de opções.
Dica
Reutilize seu cliente com pools de conexões
Recomendamos que você reutilize seu cliente entre sessões e operações usando um pool de conexões. Você pode utilizar a mesma instância do Client para executar múltiplas tarefas, em vez de criar outra a cada vez. O tipo de Client é seguro para uso concorrente por várias goroutines. Para saber mais sobre como os pool de conexões funcionam no driver, consulte o guia Pools de conexões.
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.
Exemplo
O código a seguir mostra como criar um cliente que usa uma string de conexão do Atlas e a versão da API estável, se conecta ao MongoDB e verifica 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!") } 
Recursos adicionais
Para obter mais informações sobre os conceitos deste guia, consulte a seguinte documentação:
Connection strings no manual do servidor MongoDB
Opções de connection string no manual do servidor
guia Conexão de Driver na documentação do Atlas e selecione Go no menu suspenso de idioma
Documentação da API
Para saber mais sobre os métodos e tipos discutidos neste guia, consulte a seguinte documentação da API: