如何在goLang中的整个应用程序中维护mongoDB会话作为全局变量

I am a beginner in GoLang. I want to maintain a MongoDB session throughout the application. I already have seen answers like binding DB session in martini framework or assigning it to a goLang structs. But i want a straight forward method.

I'm assuming you've already got the mgo driver:

go get gopkg.in/mgo.v2

In your code you can set a global variable outside your main function like:

var mgoSession *mgo.Session

Then either in an init function or right in your main function you start up your session:

session, err := mgo.Dial("mongodb://localhost")
if err != nil {
    panic(err)
}
session.SetMode(mgo.Monotonic, true)
mgoSession = session

Then you can clone the session as needed in the different functions in your program:

session := mgoSession.Clone()
defer session.Close()
c := session.DB("databasename").C("collectionname")