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 do aplicativo em seu arquivo .env
na raiz do seu projeto, substituindo os espaços reservados pelos valores da string de conexão da sua implantação. Para saber mais, consulte a documentação 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 aprender mais sobre como criar um cliente, consulte a documentação da API para Cliente e Conectar().
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: