c++ - 如何在启动 C++ 应用程序时检查 mongodb 是否正在运行

标签 c++ mongodb mongo-cxx-driver

我是 C++ 的初学者。我关注了http://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/tutorial/本教程。他们告诉连接到一个正在运行的 MongoDB 实例,使用 mongocxx::client 类。我这样做过

mongocxx::client conn_;
conn_ =  mongocxx::client(mongocxx::uri{uri});

      if(!conn_){
        std::cout<<"db is not started";
      }else{
        std::cout<<"db is  started";
      }

如果 mongodb 没有启动,它必须打印“db is not started”但是上面的代码似乎没有工作。 请建议我如何在启动应用程序之前检查 mongodb 是否正在运行

最佳答案

原则上,MongoDB 被设计为一个分布式系统,每个组件都可能发生故障。最好的建议是为您对数据库执行的每个查询失败做好准备。

如果尽管如此,你仍然想测试它,最简单的方法是向 MongoDB 发送命令。使用 mongocxx::database::run_command{"ismaster": 1} 命令发送到管理数据库。

关于c++ - 如何在启动 C++ 应用程序时检查 mongodb 是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47635375/

相关文章:

c++ - 多线程程序只执行最后创建的线程?

c++ - MSVC 是否错误地处理依赖名称中的模板关键字?

C++ Mutexes-检查是否有另一个线程在等待

C++如何实现这个接口(interface)配置?

c++ - bsoncxx - 有没有办法遍历 .bson 转储文件中的文档?

mongodb - 存储花费时间的最佳方法是什么(小时 : minutes) in MongoDb?

mongodb - 与关系数据库相比,使用像 MongoDB 这样的无模式数据库有什么优势?

mongodb - 如何按超出范围的日期查询文档?

c++ - Mongocxxchange_stream回调

c++ - 在 mongo-c-driver 或 mongo-cxx-driver 中插入文档后如何获得 `_id`?