Подключение к 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
Спасибо, что прочитали эту статью!