Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver GO
/

Escolha um destino de conexão

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.

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 clusters na UI do Atlas mostra para quais níveis suas instâncias foram migradas com base no uso. Consulte a página Gerenciar instâncias sem servidor para saber mais sobre como gerenciar manualmente as instâncias sem servidor existentes.

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

Para obter mais informações sobre como especificar um nome de host ou endereço IP diferente, consulte Connection strings no manual do servidor.

Para testar se você pode se conectar ao servidor, substitua a string 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 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.

Para saber mais sobre conjuntos de réplicas, consulte a entrada Replicação no manual do servidor.

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.

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>/"

Para saber mais sobre o formato de conexão SRV, consulte a entrada Formato de conexão SRV no manual do MongoDB Server.

Para saber mais sobre como conectar a diferentes instâncias MongoDB com um MongoClient, consulte a seguinte documentação da API:

Voltar

Criar um MongoClient

Nesta página