一部の機能を実装するのにgolangを利用することになり、DBはMongoDBだったので、以下のライブラリを使うことにしました。
もう一つ、gomongo(名前が紛らわしい)というのもあるそうですが、こっちは現リリース版のgolangだとコンパイルが通らなかったので、とりあえず、上記のものを利用しました。
githubのREADMEに情報が少なかったので、メモとして基本的な操作方法について記載しておきます。
基本操作
接続、コレクションの選択、切断
// 接続
conn, err := mongo.Dial("localhost:27017")
// コレクションの選択
c := mongo.Collection{conn, "hoge.foocollections", mongo.DefaultLastErrorCmd}
// 切断
conn.Close() | 
SELECT
// 単数
// 値をマップに格納
var foo_map mongo.M
err := c.Find(nil).One(&foo_map)
log.Println(foo_map["_id"])
 
// 値を構造体に格納
type Foo struct {
    Id mongo.ObjectId `bson:"_id"`
    Name string `bson:"name"`
}
 
var foo Foo
err := c.Find(nil).One(&foo)
log.Println(foo.Id)
 
// 複数
cursor, err := c.Find(nil).Limit(10).Cursor()
for cursor.HasNext() {
    var f Foo
    err = cursor.Next(&f)
    log.Println(f)
} | 
INSERT
id := mongo.NewObjectId()
err = c.Insert(&Foo{Id: id, Name: "Tatsuya Fukata"}) | 
UPDATE
// 引数: 検索条件, 更新情報
err = c.Update(mongo.M{"name": "Tatsuya Fukata"}, mongo.M{"name": "深田達也"}) | 
DELETE
err = c.Remove(mongo.M{"name": "深田達也"}) | 
BSONとGolangの変換表
go-mongoではBSONからgolang内の型変換は下記のようになっています。
//      BSON                -> Go
//      Integer32           -> signed and unsigned integers, floats, bool
//      Integer64           -> signed and unsigned integers, floats, bool
//      Array               -> []interface{}, other slice types
//      Binary              -> []byte
//      Boolean             -> bool
//      Datetime            -> mongo.Datetime, int64
//      Document            -> map[string]interface{}, struct types
//      Double              -> signed and unsigned integers, floats, bool
//      MinValue, MaxValue  -> mongo.MinMax
//      ObjectID            -> mongo.ObjectId
//      Symbol              -> mongo.Symbol, string
//      Timestamp           -> mongo.Timestamp, int64
//      string              -> string | 
後でmasterブランチのテストコードを見てみると上記の方法ではなく、Queryに対してUpdateやRemoveメソッドが使えるようになっていたので、今後はメソッドチェインで検索条件を構築した後に、操作が行えるようにもなるみたいです。
これは、goinstallでインストールされるバージョンにはまだ含まれていません。