服務器採用Replica Sets搭建,可參考Deploy a Replica Setjavascript
Mongod的讀模式共有五種:java
Tag sets 容許指定一個replica set進行讀操做,其中Mongod的讀模式必須是如下四種之一:primaryPreferred
、secondary
、secondaryPreferred
、nearest
Tags Sets配置參考:Configure Replica Set Tag Sets
主要操做以下:mongodb
conf = rs.conf() conf.members[0].tags = { "dc": "east", "use": "production" } conf.members[1].tags = { "dc": "east", "use": "reporting" } conf.members[2].tags = { "use": "production" } rs.reconfig(conf)
根據以上的配置,若是須要指定從members 1中進行數據庫讀操做,可採起如下代碼:數據庫
session, err := mgo.Dial("localhost") if err != nil { log.Fatalln(err) } defer session.Close() session.SetMode(mgo.Eventual, true) //須要指定爲Eventual session.SelectServers(bson.D{{"dc", "east"}, {"use", "reporting"}}) // 指定從1中讀取 db := session.DB("test") col := db.C("tbl") data := make([]interface{}, 10) col.Find(nil).Limit(10).All(&data) log.Println(data)