[英]How to check mongodb is running or not while starting the C++ application
我是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 start”,但以上代碼似乎無法正常工作。 在啟動應用程序之前,請建議我如何檢查mongodb是否正在運行
原則上,MongoDB被設計為分布式系統,每個組件都可能發生故障。 最好的建議是針對您對數據庫進行的每個查詢失敗都做好准備。
即使這樣,您仍然想要測試它,最簡單的方法是將命令發送到MongoDB。 使用mongocxx::database::run_command
將{"ismaster" : 1}
命令發送到管理數據庫。
我不確定這是否是唯一的方法,但是我應該工作正常。 你可以做這樣的事情
bool conn_(){
try{
//createClient
//getAnyDatabase
//getAnyCollection
return true;
}
catch(){
return false;
}
}
或者,您可以運行ping命令
Mongo mongo = new Mongo();
DBObject ping = new BasicDBObject("ping", "1");
try {
mongo.getDB("dbname").command(ping);
} catch (MongoException e) {
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.