2017-01-29 94 views
0

我是mongo的新手,並且正在搞管理serverStatus。對我而言,當我期待一個物體時,它總是返回錯誤。我在啓用auth的情況下運行mongod。是否需要特定的用戶權限?除了由nodejs驅動程序或mongodb手冊提供的API文檔外,我找不到多少文檔。Mongodb Node JS serverStatus總是返回false

MonogDB 3.4 司機的NodeJS 2.2

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

謝謝!

回答

0

我找到了答案。使用啓用auth的數據庫時,您需要使用serverStatus操作向執行用戶授予角色。

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