首页 > 解决方案 > Golang mgo store Session 或 Collection

问题描述

当我的服务器启动时,它会创建一个到 mongo 数据库的连接,获取它*mgo.Session并将其存储在“服务器”结构中,以便在该结构上定义的处理程序用于服务请求。

我看到了两种实际执行此操作的方法。

1) Save the `*mgo.Session` in the struct.

这样做的好处是您可以Session.Copy在使用会话进行连接隔离之前调用每个处理程序。缺点是您需要为每个处理程序调用.DB("x").C("y")特定xy处理程序。如果你想改变它,你需要找到你使用它的每个实例并改变它。这不太理想。

2) Store the `*mgo.Database` or even `*mgo.Collection` object on the server struct.

好处是您可以在一个地方配置它并使用它。缺点是似乎没有办法Copy()在这个东西上使用连接隔离。

您建议如何存储 mongo 会话,以便您可以干净地使用连接并在请求之间提供隔离?

标签: mongodbgomgo

解决方案


推荐阅读