這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
Go語言下與MongoDB通訊-使用mgo
分類: MongoDB2013-08-28 15:52 1585人閱讀 評論(0) 收藏 舉報
最近寫遊戲服.用的全是新貨.go語言+mongodb.嘿嘿. 關於mgo如何使用就不詳細說了.官網上寫的很清楚.這塊就說說怎麼用.
首先匯入mgo庫.
import (
"labix.org/v2/mgo"
"labix.org/v2/mgo/bson"
)
聲明DB
var DB_dbs *mgo.Database
聲明Collection
var DB_dbUserList *mgo.Collection
串連資料庫
session, err := mgo.Dial("127.0.0.1")
選擇use的DB
DB_dbs = session.DB("JLTX")
選擇對應的Collection
DB_dbUserList = DB_dbs.C("userlist")
到此為止.就可以進入表操作了.讀過mongo權威指南的話.您只要會shell的.用mgo給db通訊會很簡單.
bson.M{} 這個東西是整個mgo的明星東東.用來把golang的結構轉bson的東東.
例如: 想找到info表中的所有的資料
[cpp] view plaincopy
- infs := []DBInfo{}
- err = DB_dbInfo.Find(&bson.M{}).All(&infs)
對應shell應該是: db.dbinfo.find() 返回所有的資訊
例如:先尋找其中name為enel的所有集合
[cpp] view plaincopy
- //尋找使用者
- var u DBUser
- us := []DBUser{}
- err := DB_dbUserList.Find(&bson.M{"name": "enel"}).All(&us)
對應的shell應該是. db.userlist.find({"name":"enel0"}) 返回命中的結合
上面兩個例子就很容易看出 bson.M{} 和 shell寫法的 貫通之處. 用好bson.M{}就能用好mongodb了.
下面說一下insert操作.
你可以在go裡面任意建立struct來.往裡面插入.非常的簡單.
[cpp] view plaincopy
- u = DBUser{bson.NewObjectId(), binf.UUIDUser, csName, csPassWord, uint8(csSex)}
- DB_dbUserList.Insert(&u)