MongoDBネイティブNode.jsドライバ1.4.38を使用しています。私が使用して、実行中のすべての操作を持っているMongoDBネイティブNode.jsドライバを使用してdb.killOp()を実行するにはどうすればよいですか?
:
私は長時間実行される操作を殺したいけどdb.killOpがエラー与えているvar maxSecsRunning = 2;
db.collection('$cmd.sys.inprog').findOne(function (err, data) {
if (err) {
throw err;
}
if (data && data.inprog) {
data.inprog.forEach(function (op) {
console.log("Record", op);
if (op.secs_running > maxSecsRunning && op.op == "query" && !op.ns.indexOf("local") > -1) {
console.log("Killing opId: " + op.opid + " running for over secs: " + op.secs_running);
db.killOp(op.opid);
}
})
}
});
:未定義は関数ではありません。
node.js MongoDBネイティブドライバでkillOpを実行するにはどうすればよいですか?
私は、$のcmd.sys.killopにfindOne機能は、レコードを取得すると思います。どのように操作を殺すのだろうか?理解しないでください。 – rajeshpanwar
ほとんどのmongo操作と同様に、db.currentOp()とdb.killOp()操作を見つけて取り消すメソッドは、基本的なシステムコレクションの '$ cmd.sys 'にアクセスすることによってワイヤプロトコル操作を使って関数呼び出しを行います。 inprog'と '$ cmd.sys.killop'を操作idでそれぞれ指定します。したがって、 'db.killOp(op.opid)')を呼び出して、 'db.killOp(op.opid) 'コマンド。最初に実際に試しましたか? – chridam
はい。私はそれを試してみました。 – rajeshpanwar