本文整理汇总了Golang中github.com/10gen/llmgo.Session.DB方法的典型用法代码示例。如果您正苦于以下问题:Golang Session.DB方法的具体用法?Golang Session.DB怎么用?Golang Session.DB使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/10gen/llmgo.Session
的用法示例。
在下文中一共展示了Session.DB方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: getPrimaryPort
func getPrimaryPort(session *mgo.Session) (string, error) {
result := struct {
Members []struct {
Name string `bson:"name"`
StateStr string `bson:"stateStr"`
} `bson:"members"`
}{}
res := &struct {
Msg string
}{}
session.Run("ismaster", res)
isMongosTestServer = (res.Msg == "isdbgrid")
if isMongosTestServer {
return "", nil
}
err := session.DB("admin").Run("replSetGetStatus", &result)
if err != nil {
if err.Error() == "not running with --replSet" {
return "", nil
}
return "", err
}
for _, member := range result.Members {
if member.StateStr == "PRIMARY" {
return strings.Split(member.Name, ":")[1], nil
}
}
return "", fmt.Errorf("replset status has no primary")
}
示例2: getTestDBPort
func getTestDBPort(session *mgo.Session) (string, error) {
if port := os.Getenv("DB_PORT"); port != "" {
return port, nil
}
result := struct {
Members []struct {
Name string `bson:"name"`
StateStr string `bson:"stateStr"`
} `bson:"members"`
}{}
err := session.DB("admin").Run("replSetGetStatus", &result)
if err != nil && err.Error() != "not running with --replSet" {
return "", err
}
if err != nil && err.Error() == "not running with --replSet" {
return fmt.Sprintf("%d", defaultTestPort), nil
}
for _, member := range result.Members {
if member.StateStr == "PRIMARY" {
return strings.Split(member.Name, ":")[1], nil
}
}
return "", fmt.Errorf("unable to determine database port")
}