Подключение к MongoDB в Go

Подключение к MongoDB в Go

Привет, сегодня я покажу вам, как подключиться к MongoDB на Golang и создать первую коллекцию!

В этой статье мы будем использовать .env, у меня есть статья о .evn, нажмите здесь, если вы не знаете, как использовать .env в go.

MongoDB – это нереляционная база данных документов (NoSQL), которая обеспечивает поддержку JSON-подобного хранения данных. База данных MongoDB имеет гибкую модель данных, которая позволяет хранить неструктурированные данные, обеспечивает полную поддержку индексации и репликации с богатыми и интуитивно понятными API.

Go, также называемый Golang или язык Go, – это язык программирования с открытым исходным кодом, разработанный компанией Google. Разработчики программного обеспечения используют Go в различных операционных системах и фреймворках для разработки веб-приложений, облачных и сетевых сервисов, а также других типов программного обеспечения.

Шаг 1: Init go mod и установка драйвера mongoDB

Инициировать наш проект :

go mod init connect-to-mongodb

Установите драйвер mongoDB и dotenv:

go get go.mongodb.org/mongo-driver/mongo

go get github.com/joho/godotenv

Шаг 2: Найдите MONGO_URI в .env

Здесь я покажу, как получить MONGO_URI в .env:

func Connect() *mongo.Collection {
    // Find .evn
    err := godotenv.Load(".env")
    if err != nil {
        log.Fatalf("Error loading .env file: %s", err)
    }

    // Get value from .env
    MONGO_URI := os.Getenv("MONGO_URI")
}

Шаг 3: Подключитесь к базе данных.

Здесь я показываю, как просто подключиться к базе данных

func Connect() *mongo.Collection {
    // Find .evn
    err := godotenv.Load(".env")
    if err != nil {
        log.Fatalf("Error loading .env file: %s", err)
    }

    // Get value from .env
    MONGO_URI := os.Getenv("MONGO_URI")

    // Connect to the database.
    clientOptions := options.Client().ApplyURI(MONGO_URI)
    client, err := mongo.Connect(context.Background(), clientOptions)
    if err != nil {
        log.Fatal(err)
    }
}

Шаг 4: Проверьте соединение.

Здесь мы проверяем соединение с нашей БД

func Connect() {
    // Find .evn
    err := godotenv.Load(".env")
    if err != nil {
        log.Fatalf("Error loading .env file: %s", err)
    }

    // Get value from .env
    MONGO_URI := os.Getenv("MONGO_URI")

    // Connect to the database.
    clientOptions := options.Client().ApplyURI(MONGO_URI)
    client, err := mongo.Connect(context.Background(), clientOptions)
    if err != nil {
        log.Fatal(err)
    }

    // Check the connection.
    err = client.Ping(context.Background(), nil)
    if err != nil {
        log.Fatal(err)
    }else{
      fmt.Println("Connected to mongoDB!!!")
   }
}

Шаг 5: Создание первой коллекции

Здесь я покажу, как создать первую коллекцию

package main

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

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

func main(){
 Connect();
}

func Connect() *mongo.Collection {
    // Find .evn
    err := godotenv.Load(".env")
    if err != nil {
        log.Fatalf("Error loading .env file: %s", err)
    }

    // Get value from .env
    MONGO_URI := os.Getenv("MONGO_URI")

 // Connect to the database.
 clientOption := options.Client().ApplyURI(MONGO_URI)
 client, err := mongo.Connect(context.Background(), clientOption)
 if err != nil {
  log.Fatal(err)
 }

 // Check the connection.
 err = client.Ping(context.Background(), nil)
 if err != nil {
  log.Fatal(err)
 }

 // Create collection
 collection := client.Database("testdb").Collection("test")
 if err != nil {
     log.Fatal(err)
 }

 fmt.Println("Connected to db")

 return collection
}

Полный код

package main

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

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

func main(){
 Connect();
}

func Connect() *mongo.Collection {
    // Find .evn
    err := godotenv.Load(".env")
    if err != nil {
        log.Fatalf("Error loading .env file: %s", err)
    }

    // Get value from .env
    MONGO_URI := os.Getenv("MONGO_URI")

 // Connect to the database.
 clientOption := options.Client().ApplyURI(MONGO_URI)
 client, err := mongo.Connect(context.Background(), clientOption)
 if err != nil {
  log.Fatal(err)
 }

 // Check the connection.
 err = client.Ping(context.Background(), nil)
 if err != nil {
  log.Fatal(err)
 }

 // Create collection
 collection := client.Database("testdb").Collection("test")
 if err != nil {
     log.Fatal(err)
 }

 fmt.Println("Connected to db")

 return collection
}

Выход:

danilbolsakov@Danils-MacBook-Pro mongodb % go run .
Connected to db

Спасибо, что прочитали эту статью!

+1
0
+1
0
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *