Голанг мго магазин сессия или коллекция - PullRequest
1 голос
/ 20 мая 2019

Когда мой сервер запускается, он создаст соединение с базой данных mongo, захватит его *mgo.Session и сохранит его в структуре "server" для обработчиков, определенных в этой структуре, для использования для обслуживания запросов.

Я вижу два способа действительно выполнить это.

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() для изоляции соединения.

Как вы рекомендуете хранить сеанс Монго, чтобы вы могли аккуратно использовать соединение и обеспечить изоляцию между запросами?

...