I am using MongoDB native Node.js Driver 1.4.38.
I have got all running operation using :
var maxSecsRunning = 2;
db.collection(\'$cmd.sys.inprog\').fin
The same way you ran the query on the db.collection('$cmd.sys.inprog')
collection, you can do the same for the db.killOp()
on the db.collection('$cmd.sys.killop')
collection.
Following this example will do the trick:
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);
// same thing as db.killOp(op.opid)
db.collection('$cmd.sys.killop')
.findOne({ 'op': op.opid }, function (err, data) {
if (err) throw err;
// do something with the result
});
}
});
}
});