Если вы используете DBClientConnection, у него есть одно соединение, и вы не должны отключать / переподключаться. Я предполагаю, что это убивает связь, когда вызывает деструкторы. Вы можете настроить его на автоматическое переподключение, чтобы вы могли продолжать использовать его, если он потеряет соединение.
Если вы хотите иметь пул соединений и несколько соединений, вы хотите использовать ScopedDBConnection. Вы можете увидеть несколько примеров здесь: https://github.com/mongodb/mongo/blob/master/src/mongo/client/model.cpp
Вот суть:
ScopedDbConnection conn("localhost");
mongo::BSONObjBuilder obj;
obj.append( "name" , "asd" );
conn->insert("test.test", obj);
conn.done();
По сути, вы можете сделать с conn
все, что можете сделать с DBClientConnection, но когда вы закончите, вы позвоните done()
.