2017-12-04 13 views
0

私は初心者です。私はこのチュートリアルhttp://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/tutorial/に続いています。実行中のMongoDBインスタンスに接続するように指示した場合は、mongocxx::clientクラスを使用します。 MongoDBのが開始されていない場合、私はそれが「DBが起動していない」が、上記のコードは動作しているようだしない印刷する必要があり、このC++アプリケーションの起動中にmongodbが動作しているかどうかをチェックする方法

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

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

のように行っています。 mongodbが動作しているかどうかを確認する方法を教えてください。アプリケーションを起動する前に実行してください。

答えて

0

これが唯一の方法であるかどうかは分かりませんが、うまくいきます。 あなたが原則のMongoDBでは

Mongo mongo = new Mongo(); 
DBObject ping = new BasicDBObject("ping", "1"); 
try { 
     mongo.getDB("dbname").command(ping); 
} catch (MongoException e) { 
     ... 
} 
0

は、すべてのコンポーネントが失敗する可能性があり、分散システムとして設計されてpingコマンドを実行することができ、この

bool conn_(){ 
    try{ 
    //createClient 
    //getAnyDatabase 
    //getAnyCollection 
    return true; 
    } 
    catch(){ 
     return false; 
    } 
} 

ような何かをするか、またはすることができます。最善のアドバイスは、データベースに対して失敗したクエリごとに準備することです。

これにもかかわらずテストしたい場合は、最も簡単な方法はMongoDBにコマンドを送信することです。 mongocxx::database::run_commandを使用して{"ismaster" : 1}コマンドを管理データベースに送信します。

関連する問題