1

我想知道我是否能够检查 mongoDB 是否从 Cxx 驱动程序运行。我使用的版本是 3.0.1。

我厌倦了研究mongocxx::clientand mongocxx::v_noabi::collection,但我找不到似乎可以完成这项工作的函数/方法。

如果数据库没有运行,查询将失败并抛出异常。但是,我的应用程序最好能立即告诉我 mongoDB 是否正在运行,而不是在执行查询时抛出异常。

谢谢。

4

1 回答 1

3

由于分布式系统的性质,无法保证网络随时可用,数据库是否可用等。这意味着如果无法访问数据库,您的所有查询和写入都需要为失败的可能性做好准备。由于您已经应该考虑到这一点,因此最好依靠它而不是独立的“检查数据库是否启动”测试。

这样想:您在检查“数据库是否启动”和您的下一个操作之间存在竞争条件。我们建议不要竞速——只需编写您的应用程序来处理故障。

如果——尽管有这个建议——你真的想做一次性检查,使用mongocxx::database::run_command发送一个{"ismaster" : 1}命令到管理数据库。

于 2016-11-04T20:16:38.103 回答