Mongodb Node JS serverStatus总是返回false

时间:2017-01-29 04:10:15

标签: node.js mongodb

我是mongo的新手,并且正在使用admin serverStatus。对我来说,当我期待一个对象时,它总是返回false。我正在运行启用了auth的mongod。是否需要特定的用户权限?除了来自nodejs驱动程序或mongodb手册的API文档提供的文档之外,我找不到太多文档。

MonogDB 3.4 NodeJS驱动程序2.2

var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://user:pass@localhost:27017/test?authMechanism=DEFAULT&authSource=test', function(err, db) {
  var adminDB = db.admin();
  adminDB.serverStatus(function(err, status) {
    console.log(status);
    db.close();
  });
});

谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了答案。使用启用auth的数据库,您需要使用serverStatus操作向执行用户授予角色。

db.createRole(
   {
     role: "mongostatRole",
     privileges: [
       { resource: { cluster: true }, actions: [ "serverStatus" ] }
     ],
     roles: []
   }
)