sql >> データベース >  >> NoSQL >> MongoDB

MongoDbドライバーを使用してnode.jsからrs.initiate()とrs.Add()を呼び出すことはできますか?

    レプリカセットの管理ヘルパーはどのように実装されていますか?

    rs.* レプリカセット管理ヘルパー mongoで シェルは、任意のドライバーから送信できるMongoDBコマンドのラッパーです。

    MongoDBのドキュメントを参照すると、各シェルヘルパーがどのコマンドをラップするかを確認できます。

    mongoに注意してください シェルヘルパーは、インタラクティブなmongoを介して使用することを目的としているため、構成の追加の検証または操作を行う場合があります。 シェル。

    かっこを付けずにシェルでコマンドを呼び出すことで、シェルヘルパーがどのように実装されているかを確認できます。例:

    > rs.initiate
    function (c) { return db._adminCommand({ replSetInitiate: c }); }
    

    Node.jsからレプリカセットデータベースコマンドを呼び出す

    同等のロジックは、 command()

    // Rough equivalent of rs.initiate()
    var MongoClient = require('mongodb').MongoClient;
    
    MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
    
      // Use the admin database for commands
      var adminDb = db.admin();
    
      // Default replica set conf
      var conf = {};
    
      adminDb.command({replSetInitiate: conf}, function(err, info) {
         console.log(info);
      });
    });
    

    Node.jsでレプリカセットヘルパーを再実装するのではなく、mongoを呼び出すことができます。 --evalを使用したシェル シェルヘルパーを実行するコマンド(ヒント:--quietを含める 不要なメッセージを抑制します。

    たとえば、ノードアプリからの呼び出し:

    var exec = require('child_process').exec;
    var rsAdmin = exec('mongo --eval "var res = rs.initiate(); printjson(res)" --quiet', function (error, stdout, stderr) {
       // output is in stdout
       console.log(stdout);
    });
    



    1. MongoDb C#でネストされたクラスList<>でLinqを使用することはできません

    2. Ubuntu(Linux)にLampを使用してMongodbをインストールする

    3. MongoDBとNodeJSを使用して特定の日付をクエリする

    4. MongoDB C#ドライバー'カーソルが見つかりません'