我使用节点js作为前端,mongodb作为后端。我得到了成功的联系。但是当试图让所有进程在mongodb中运行时抛出错误。我的代码如下。
var Db = require('mongodb').Db, Server = require('mongodb').Server;
var db = new Db('admin', new Server(conf.host, conf.port));
db.open(function(err, db1) {
var adminDb = db1.admin();
adminDb.authenticate(conf.user, conf.password, function(err, result) {
if(result == true) {
var obj = adminDb.currentOp({"active":true});
console.log("output="+output);
}
});
});
我收到以下错误。
TypeError:adminDb.currentOp不是函数
答案 0 :(得分:1)
您想要.command()
:
adminDb.command({ "currentOp": 1, "active": true },function(err,result) {
// code in here
});
如果你一直在寻找“实际”执行的方式,那么进入mongo shell并输入最后没有()
括号的函数。这将显示定义。
I.E代表currentOp()
:
> db.currentOp
function (arg) {
var q = {};
if (arg) {
if (typeof(arg) == "object")
Object.extend(q, arg);
else if (arg)
q["$all"] = true;
}
var commandObj = {"currentOp": 1};
Object.extend(commandObj, q);
var res = this.adminCommand(commandObj);
if (commandUnsupported(res)) {
// always send legacy currentOp with default (null) read preference (SERVER-17951)
var _readPref = this.getMongo().getReadPrefMode();
try {
this.getMongo().setReadPref(null);
res = this.getSiblingDB("admin").$cmd.sys.inprog.findOne(q);
} finally {
this.getMongo().setReadPref(_readPref);
}
}
return res;
}