是否可以从 cxx 驱动程序检查 mongoDB 是否为 运行?

Is it possible to check if mongoDB is running from cxx driver?

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

我厌倦了研究 mongocxx::clientmongocxx::v_noabi::collection,但我找不到似乎能胜任的 function/method。

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

谢谢。

由于分布式系统的性质,无法保证网络随时正常运行、数据库正常运行等。这意味着如果无法访问数据库,您的所有查询和写入都需要为失败的可能性做好准备。由于您已经应该考虑到这一点,因此最好依赖它而不是独立的 "check if the DB is up" 测试。

这样想:在检查 "is the database up" 和下一个操作之间存在竞争条件。我们建议不要赛车 - 只需编写您的应用程序来处理故障。

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