Go言語でMongoDBを操作する
Go言語からMongoを操作する前に
GoからMongoDBを操作する方法です。bazaarというバージョン管理ソフトを使ってライブラリを入れる必要があるのでインストールと、Go言語自体のライブラリを格納するGOPATHが設定されている必要があります。適当にググって設定しておいてください。
ubuntu
$ sudo apt-get install bzr
mac (ports)
$ sudo port install bzr
mgoライブラリインストール
MongoDB用のライブラリをgo getでインストール。
http://labix.org/mgo
$ go get labix.org/v2/mgo
Exampleを実行させてみる
サイトにあったexampleを動ささせます。
exampleソースコード
接続ホストのところだけlocalhostのmongodbにつなぐように変更しています。
[java]
package main
import (
"fmt"
"labix.org/v2/mgo"
"labix.org/v2/mgo/bson"
)
type Person struct {
Name string
Phone string
}
func main() {
session, err := mgo.Dial("localhost")
if err != nil {
panic(err)
}
defer session.Close()
// Optional. Switch the session to a monotonic behavior.
session.SetMode(mgo.Monotonic, true)
c := session.DB("test").C("people")
err = c.Insert(&Person{"Ale", "+55 53 8116 9639"},
&Person{"Cla", "+55 53 8402 8510"})
if err != nil {
panic(err)
}
result := Person{}
err = c.Find(bson.M{"name": "Ale"}).One(&result)
if err != nil {
panic(err)
}
fmt.Println("Phone:", result.Phone)
}
[/java]
実行と結果確認
$ go run mongo_example.go
Phone: +55 53 8116 9639
$ mongo
MongoDB shell version: 2.4.8
connecting to: test
> use test
switched to db test
> show collections
people
system.indexes
> db.people.find()
{ "_id" : ObjectId("5319ff3e265426f4f063a490"), "name" : "Ale", "phone" : "+55 53 8116 9639" }
{ "_id" : ObjectId("5319ff3e265426f4f063a491"), "name" : "Cla", "phone" : "+55 53 8402 8510" }
とりあえずサンプルを動作させるところまで。
mgoのAPIを参考にhttp://godoc.org/labix.org/v2/mgo
-
前の記事
PHP 配列操作あれこれ 2014.03.07
-
次の記事
Windowsのサービスをコマンドラインで制御する 2014.03.12