[go] Go 언어에서 MongoDB 데이터베이스에 연동하는 방법

MongoDB는 현존하는 가장 인기 있는 NoSQL 데이터베이스 중 하나입니다. Go 언어로 MongoDB와 연동하여 데이터를 저장하고 조회하는 작업은 비교적 간단합니다. 여기에서는 Go 언어로 MongoDB를 연동하는 방법을 알아보겠습니다.

1. MongoDB Go 언어 드라이버 설치

Go 언어에서 MongoDB를 사용하기 위해서는 공식 MongoDB Go 언어 드라이버를 설치해야 합니다. 아래의 명령어를 사용하여 드라이버를 설치할 수 있습니다.

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

2. MongoDB에 연결하기

아래의 예시를 통해 Go 언어를 사용하여 MongoDB 데이터베이스에 연결하는 방법을 확인할 수 있습니다.

package main

import (
	"context"
	"fmt"
	"log"
	"go.mongodb.org/mongo-driver/mongo"
	"go.mongodb.org/mongo-driver/mongo/options"
)

func main() {
	// MongoDB 연결 문자열
	connString := "mongodb://localhost:27017"

	// MongoDB에 연결
	client, err := mongo.Connect(context.Background(), options.Client().ApplyURI(connString))
	if err != nil {
		log.Fatal(err)
	}

	// 연결 테스트
	err = client.Ping(context.Background(), nil)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Connected to MongoDB!")

	// 연결 종료
	err = client.Disconnect(context.Background())
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Connection Closed")
}

3. 데이터 저장 및 조회

아래의 예시는 Go 언어로 MongoDB에 데이터를 저장하고 조회하는 과정을 보여줍니다.


package main

import (
	"context"
	"fmt"
	"log"
	"go.mongodb.org/mongo-driver/bson"
	"go.mongodb.org/mongo-driver/mongo"
	"go.mongodb.org/mongo-driver/mongo/options"
)

type User struct {
	Name  string
	Email string
}

func main() {
	// MongoDB 연결 문자열
	connString := "mongodb://localhost:27017"

	// MongoDB에 연결
	client, err := mongo.Connect(context.Background(), options.Client().ApplyURI(connString))
	if err != nil {
		log.Fatal(err)
	}

	// 데이터베이스 및 컬렉션 선택
	collection := client.Database("mydatabase").Collection("users")

	// 사용자 생성
	user := User{"John Doe", "john@example.com"}

	// 사용자 삽입
	insertResult, err := collection.InsertOne(context.Background(), user)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Inserted a single document: ", insertResult.InsertedID)

	// 사용자 조회
	filter := bson.D{{"name", "John Doe"}}
	var result User
	err = collection.FindOne(context.Background(), filter).Decode(&result)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Found user:", result)

	// 연결 종료
	err = client.Disconnect(context.Background())
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Connection Closed")
}

위의 코드를 실행하면 Go 언어로 MongoDB 데이터베이스와의 연동이 가능하다는 것을 확인할 수 있습니다. 자세한 내용은 MongoDB의 Go 언어 드라이버 공식 문서를 참고하시기 바랍니다.