本文整理汇总了Golang中labix/org/v2/mgo.Session.Run方法的典型用法代码示例。如果您正苦于以下问题:Golang Session.Run方法的具体用法?Golang Session.Run怎么用?Golang Session.Run使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类labix/org/v2/mgo.Session
的用法示例。
在下文中一共展示了Session.Run方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: CurrentStatus
// CurrentStatus returns the status of the replica set for the given session.
func CurrentStatus(session *mgo.Session) (*Status, error) {
status := &Status{}
err := session.Run("replSetGetStatus", status)
if err != nil {
return nil, fmt.Errorf("cannot get replica set status: %v", err)
}
return status, nil
}
示例2: IsMaster
// IsMaster returns information about the configuration of the node that
// the given session is connected to.
func IsMaster(session *mgo.Session) (*IsMasterResults, error) {
results := &IsMasterResults{}
err := session.Run("isMaster", results)
if err != nil {
return nil, err
}
return results, nil
}
示例3: Optime
// Optime returns the Timestamp for mongo getoptime command, session should be a direct session.
func Optime(s *mgo.Session) (*Timestamp, error) {
ts := new(Timestamp)
stats := struct {
Optime optime
}{}
if err := s.Run("getoptime", &stats); err != nil {
return ts, err
}
*ts = Timestamp(stats.Optime)
return ts, nil
}
示例4: applyRelSetConfig
// applyRelSetConfig applies the new config to the mongo session. It also logs
// what the changes are. It checks if the replica set changes cause the DB
// connection to be dropped. If so, it Refreshes the session and tries to Ping
// again.
func applyRelSetConfig(cmd string, session *mgo.Session, oldconfig, newconfig *Config) error {
logger.Debugf("%s() changing replica set\nfrom %s\n to %s",
cmd, fmtConfigForLog(oldconfig), fmtConfigForLog(newconfig))
err := session.Run(bson.D{{"replSetReconfig", newconfig}}, nil)
// We will only try to Ping 2 times
for i := 0; i < 2; i++ {
if err == io.EOF {
// If the primary changes due to replSetReconfig, then all
// current connections are dropped.
// Refreshing should fix us up.
logger.Debugf("got EOF while running %s(), calling session.Refresh()", cmd)
session.Refresh()
} else if err != nil {
// For all errors that aren't EOF, return immediately
return err
}
// err is either nil or EOF and we called Refresh, so Ping to
// make sure we're actually connected
err = session.Ping()
// Change the command because it is the new command we ran
cmd = "Ping"
}
return err
}