如何使用C+重新连接到MongoDB+;司机? 我有一个C++函数,它使用C++驱动程序将文档保存到MunGDB。它将连接引用作为参数:

如何使用C+重新连接到MongoDB+;司机? 我有一个C++函数,它使用C++驱动程序将文档保存到MunGDB。它将连接引用作为参数:,c++,exception,mongodb,exception-handling,compiler-errors,C++,Exception,Mongodb,Exception Handling,Compiler Errors,当我重新启动MongoDB时,我可以看到正在建立新的连接。 但是,conn.isFailed()仍然为true 这可能是因为当我重新连接时,我使用的是conn,而不是&conn 当我在&conn.connect(“localhost”)中使用&conn时,我收到错误消息- error: lvalue required as unary ‘&’ operand 我该如何解决这个问题?i、 e.修改基础连接,使conn.isFailed()在建立新连接时变为false 应该在mongo::

当我重新启动MongoDB时,我可以看到正在建立新的连接。 但是,conn.isFailed()仍然为true

这可能是因为当我重新连接时,我使用的是
conn
,而不是
&conn
当我在
&conn.connect(“localhost”)中使用
&conn
,我收到错误消息-

error: lvalue required as unary ‘&’ operand

我该如何解决这个问题?i、 e.修改基础连接,使conn.isFailed()在建立新连接时变为false

应该在mongo::DBClientConnection::DBClientConnection构造函数中启用_autoReconnect。


在调用_checkconnection之前,不会设置isfailed()方法返回的变量_failed_checkConnection在发送到数据库之前不会被调用,因此,您也可以在调用_isFailed之前调用ping命令。但是,建议的修复方法是启用_autoReconnect

您的问题与是否使用
&
运算符无关。如果您尝试像这样使用
&
,那么它只会尝试获取
connect
方法返回值的地址。相反,请检查您是否正确断开/重新连接?是的,我可以在MongoDB日志中看到重新连接成功谢谢!我将继续在构造函数中启用_autoReconnect