我确定这一定非常简单,或者我忽略了这一点,但是如何使用C ++驱动程序和DBClientConnection断开与Mongo的连接? DBClient有一个'connect'的公共成员,但没有我可以找到的disconnect / kill / drop等。
有一些关于使用ScopedDBConnection的谈话(在堆栈溢出和网络上)似乎能够让我放弃我的连接 - 但很少有如何使用它的例子 - 或者关于何时的信息我应该在DBClientConnection类上使用该类。
有什么想法吗?
答案 0 :(得分:2)
如果您正在使用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()
。