Go言語(Golang)でMongoDBと接続する方法
MongoDBのドライバは最近変更されていますので、その点を中心にお話しします。
mgoは既にメンテナンス停止。
これまでのGo言語でのmongoDBドライバとはmgoでした。しかし、すでにgithub(https://github.com/go-mgo/mgo)を覗いてもわかる通り、メンテナンスが停止しています。
<旧ドライバ(mgo)インストール(参考まで)>
go get gopkg.in/mgo.v2
go get gopkg.in/mgo.v2/bson
MongoDB公式ドライバを使用しよう。
今後は以下のMongoDB公式ドライバを使用しましょう。
ソースはコチラ。
MongoDBドライバインストール方法
公式ドキュメント(https://docs.mongodb.com/drivers/go)に従ってインストールすることをお勧めします。2021年現在は以下の通りgo getすることで問題なくインストールできます。
go get go.mongodb.org/mongo-driver/mongo
MongoDB公式ドライバの使い方も少しづつ変わっていますので注意が必要です。
MongoDBに接続する
以下はMongoDBに接続する簡単な例です。
package main
import (
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
type demo struct{
ID primitive.ObjectID `bson:"_id, omitempty"`
AuthorID string `bson:"author_id"`
Content string `bson:"content"`
Title string `bson:"title"`
}
func main() {
//Connect to MongoDB
client, err := mongo.NewClient(options.Client().ApplyURI(<MongoDB address>))
if err != nil { log.Fatal(err) }
ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
defer cancel()
err = client.Connect(ctx)
if err != nil { log.Fatal(err) }
collection = client.Database("grpc").Collection("test")
:
:
:
// Close connection
client.Disconnect(ctx)
}
10行目 – 最近の変更点としてObjectID typeの参照先がprimitiveパッケージになっています。ここでは例としてdemo structを書いてみましたが、このようにprimitive.ObjectIDで _idを格納するようにします。
18行目 – <MongoDB address>の個所に自身のDBアドレスを記載してください。
ディスカッション
コメント一覧
まだ、コメントがありません