我想知道我是否能够检查mongoDB是否从Cxx驱动程序运行。我使用的版本是3.0.1。
我厌倦了深入研究mongocxx::client
和mongocxx::v_noabi::collection
,但我找不到似乎可以完成这项任务的功能/方法。
如果数据库未运行,则查询将失败并引发异常。但是,我的应用程序可以立即告诉我mongoDB是否正在运行,而不是在执行查询时抛出异常。
感谢。
答案 0 :(得分:3)
由于分布式系统的性质,不能保证网络正常运行,数据库启动等等。这意味着如果无法访问数据库,则需要为所有查询和写入做好准备。既然你已经应该考虑到这一点,那么最好依靠它,而不是单独的“检查数据库是否已启动”测试。
以这种方式思考:在检查“数据库已启动”和下一次操作之间存在竞争条件。我们建议不要比赛 - 只需编写应用程序来处理故障。
如果 - 尽管有这样的建议 - 您确实想要进行一次性检查,请使用mongocxx::database::run_command
向管理数据库发送{"ismaster" : 1}
命令。