Go 언어는 MongoDB 데이터베이스를 연동하기 위한 효율적인 방법을 제공합니다. MongoDB는 NoSQL 데이터베이스로서 유연한 구조를 지원하며, Go 언어와의 통합을 통해 뛰어난 성능과 확장성을 제공합니다.
이번 포스팅에서는 Go 언어에서 MongoDB와의 연동 방법에 대해 알아보겠습니다.
MongoDB 드라이버 설치
먼저, Go 언어에서 MongoDB와의 연동을 위해 MongoDB 공식 드라이버를 설치해야 합니다. 다음 명령을 사용하여 드라이버를 설치할 수 있습니다.
go get go.mongodb.org/mongo-driver/mongo
연결 설정
MongoDB와의 연결을 설정하는 과정은 다음과 같습니다.
package main
import (
"context"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"log"
)
func main() {
clientOptions := options.Client().ApplyURI("mongodb://localhost:27017")
client, err := mongo.Connect(context.Background(), clientOptions)
if err != nil {
log.Fatal(err)
}
// 연결 해제
defer func() {
if err = client.Disconnect(context.Background()); err != nil {
panic(err)
}
}()
}
위 코드에서 ApplyURI
메서드를 사용하여 MongoDB 서버의 URI로 연결을 설정합니다. mongo.Connect
를 사용하여 MongoDB에 연결하고, 연결을 종료할 때에는 client.Disconnect
메서드를 사용합니다.
데이터베이스 및 컬렉션 생성
MongoDB와의 연결이 설정되면 다음으로는 데이터베이스와 컬렉션을 생성할 수 있습니다.
// 데이터베이스와 컬렉션 생성
collection := client.Database("mydatabase").Collection("mycollection")
위 코드에서 Database
및 Collection
메서드를 사용하여 데이터베이스 및 컬렉션을 생성합니다.
쿼리 수행
데이터베이스와 컬렉션이 생성되면 다양한 쿼리를 수행할 수 있습니다.
// 데이터 삽입
_, err = collection.InsertOne(context.Background(), bson.D{{"key", "value"}})
if err != nil {
log.Fatal(err)
}
// 데이터 조회
filter := bson.D{{"key", "value"}}
var result bson.M
if err = collection.FindOne(context.Background(), filter).Decode(&result); err != nil {
log.Fatal(err)
}
위 코드에서 InsertOne
메서드를 사용하여 데이터를 삽입하고, FindOne
메서드를 사용하여 데이터를 조회합니다.
결론
이처럼 Go 언어에서 MongoDB와의 데이터베이스 연동은 간단하면서도 강력한 기능을 제공합니다. Go 언어의 강력한 동시성 및 성능과 MongoDB의 유연한 데이터 모델을 결합하여 효율적인 애플리케이션을 개발할 수 있습니다. MongoDB 공식 문서를 참고하여 더 많은 기능을 알아보시기를 권장합니다.
참고문헌:
- https://pkg.go.dev/go.mongodb.org/mongo-driver/mongo