mgo.v2でGoからMongoDBにつないでSELECTする

導入方法 https://gopkg.in/mgo.v2

データは事前に下記のように入っているとする

> db.users.find()
{ "_id" : ObjectId("57a08bcd665449ed6ba92517"), "name" : "あいう", "id" : 2 }
{ "_id" : ObjectId("57a08bd8665449ed6ba92518"), "name" : "かきく", "id" : 1 }
package main

import (
    "fmt"
    "gopkg.in/mgo.v2"
    "gopkg.in/mgo.v2/bson"
)

type User struct {
    Name  string        `bson:"name"`
    Id int `bson:"id"`
}

func main() {
    session, _ := mgo.Dial("mongodb://localhost")
    defer session.Close()
    db := session.DB("mydb")

    // 全ユーザ取得
    // var results []User
    // db.C("users").Find(nil).All(&results)
    // fmt.Println("Results All: ", results) 

    // id指定でユーザ取得
    var results []User
    db.C("users").Find(bson.M{"id": 1}).All(&results)
    fmt.Println("Results of one user: ", results)    
}