Skip to main content

Utilizando o MongoDB Atlas c/ Go

Para interagir com um banco de dados MongoDB Atlas usando Go, você pode usar o pacote mongo-go-driver. Abaixo está um exemplo simples que mostra como se conectar a um cluster do MongoDB Atlas, inserir um documento em uma coleção e recuperar documentos da coleção.

Primeiro, certifique-se de ter o mongo-go-driver instalado. Se não tiver, você pode instalá-lo usando o seguinte comando após copiar o código abaixo no seu módulo:

go mod tidy

Em seguida, use o seguinte código Go como exemplo:

package main

import (
"context"
"fmt"
"log"
"os"

"github.com/joho/godotenv"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)

func main() {
// Carregar variáveis de ambiente do arquivo .env
err := godotenv.Load()
if err != nil {
log.Fatal("Erro ao carregar o arquivo .env")
}

// Recuperar usuário e senha do arquivo .env
mongoUser := os.Getenv("MONGO_USER")
mongoPassword := os.Getenv("MONGO_PASSWORD")

// Use the SetServerAPIOptions() method to set the version of the Stable API on the client
serverAPI := options.ServerAPI(options.ServerAPIVersion1)
opts := options.Client().ApplyURI(fmt.Sprintf("mongodb+srv://%s:%s@cluster-teste.q2pkwbd.mongodb.net/?retryWrites=true&w=majority&appName=Cluster-teste", mongoUser, mongoPassword)).SetServerAPIOptions(serverAPI)

// Create a new client and connect to the server
client, err := mongo.Connect(context.TODO(), 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
if err := client.Database("admin").RunCommand(context.TODO(), bson.D{{"ping", 1}}).Err(); err != nil {
panic(err)
}
fmt.Println("Pinged your deployment. You successfully connected to MongoDB!")
}
warning

Note que, para rodar o código acima, você precisa configurar um .env e usar a biblioteca godotenv.