我的服务器启动时,它将创建与mongo数据库的连接,抓取*mgo.Session
并将其存储在“服务器”结构中,以供在该结构上定义的处理程序用于服务请求。
我看到了两种实际执行此方法的方法。
1) Save the `*mgo.Session` in the struct.
这样做的好处是,您可以在使用会话进行连接隔离之前,在每个处理程序中调用Session.Copy
。缺点是您需要为特定的.DB("x").C("y")
调用x
,并为每个处理程序调用{{1}}。如果要更改此设置,则需要找到使用它的每个实例并进行更改。那不理想。
y
好处是您可以在一个位置进行配置并使用它。缺点是似乎无法在事物上使用2) Store the `*mgo.Database` or even `*mgo.Collection` object on the server struct.
进行连接隔离。
您如何建议存储mongo会话,以便可以干净地使用连接并在请求之间提供隔离?