mongodb - Golang mgo store Session 或 Collection
问题描述
当我的服务器启动时,它会创建一个到 mongo 数据库的连接,获取它*mgo.Session
并将其存储在“服务器”结构中,以便在该结构上定义的处理程序用于服务请求。
我看到了两种实际执行此操作的方法。
1) Save the `*mgo.Session` in the struct.
这样做的好处是您可以Session.Copy
在使用会话进行连接隔离之前调用每个处理程序。缺点是您需要为每个处理程序调用.DB("x").C("y")
特定x
的y
处理程序。如果你想改变它,你需要找到你使用它的每个实例并改变它。这不太理想。
2) Store the `*mgo.Database` or even `*mgo.Collection` object on the server struct.
好处是您可以在一个地方配置它并使用它。缺点是似乎没有办法Copy()
在这个东西上使用连接隔离。
您建议如何存储 mongo 会话,以便您可以干净地使用连接并在请求之间提供隔离?
解决方案
推荐阅读
- python - QGraphicsProxyWidget 搞乱了鼠标光标的变化
- ios - Carthage:使用 Forked LoopKit 时依赖图包含一个循环
- sql - 如何在 Postgresql (pgAdmin4) 中导入日期样式不一致的数据集?
- java - HikariCP 在更新 spring-boot 1.xx => 2.xx 后未配置数据源或添加 postgres 连接
- javascript - 如何将获取的数据存储在状态中并将其呈现在我的组件中
- java - 无法在 RecyclerView 项目单击时显示弹出菜单
- ios - 音频 url 列表中的音频持续时间未在表格视图中正确加载
- ssl - Letencrypt 证书 fullchain.pem / cert.pem 转换为 .cer 扩展名,但在 ubuntu 18.04 上获得 .cer 或 .der 扩展名中的错误文件
- python - Pi 触摸屏上的 matplotlib
- python - python3-config --configdir 显示旧版本的python