3

Node.js のmongodbモジュールを使用して、データベースの現在の操作に関する情報を取得する方法が見つからないようです。

私はこれを試しました:

mongodb   = require 'mongodb'
server    = new mongodb.Server 'localhost', 27017
connector = new mongodb.Db 'test', server

connector.open (err, db) ->
    if not err?
        db.admin().command {currentOp: 1}, (err, doc) ->
            if not err?
                console.log doc

もちろん何の結果もなしに。

誰かポインターを持っていますか?

4

5 に答える 5

8

ノード mongodb ネイティブ ドライバーから直接これを行う方法:

var MongoClient = require('mongodb').MongoClient;

MongoClient.connect('mongodb://127.0.0.1:27017/', function (err, db) {

    if (err) { throw err; }

    db.collection('$cmd.sys.inprog').findOne(function (err, data) {

        if (err) { throw err; }
        console.log(data.inprog);

    });
});
于 2013-10-13T10:00:12.393 に答える
0

MongoDB 3.2 で currentOp コマンドを使用することをお勧めします (詳細については、db.currentOpのシェル定義を参照してください)。

db.eval("return db.currentOp()",function (err, data) { console.log('currentOp',err,data); });

于 2016-12-27T06:33:12.500 に答える
-2

これは、Node.js 用の MongoDB ネイティブ ドライバーを無視して、機能しているようです。

exec = require('child_process').exec

exec '/usr/bin/mongo --quiet --host="localhost:27017" "test" --eval "printjson(db.currentOp())"', (err, stdout) ->
    console.error "#{err.message}" if err?

    console.log JSON.parse stdout

この機能はドライバーに実装すべきではありませんか?

于 2013-08-06T12:46:52.287 に答える