无法查询mongoose中的Oplog

我在MongoLabs mongoDb上查询mongo oplog。 由于Mongolabs不允许为本地用户创build用户,所以我在pipe理员中创build了一个oplog-reader,但会引发错误,表明它是未经授权的:

代码片段:

var oplogURL = 'mongodb://<oplog-user>:<password>@node1,node2:port/admin?replicaSet=rs-<relpset>'; var allLocalURL = 'mongodb://<oplog-user>:<password>@node1,node2:port/local?replicaSet=rs-<relpset>'; //user on admin with "readWriteAnyDatabase" permisson, trying to use local db var allReaderURL='mongodb://<user>:<password>@node1,node2:port/admin?replicaSet=rs-<relpset>'; //user on admin with "readWriteAnyDatabase" permisson var db = mongoose.createConnection(oplogURL,{replset: { poolSize: 50 }}, function (err, res){ if (err) {console.log("Oops!"); console.log(err);} }); var opschema = new mongoose.Schema({v:"Number", op:"String", ns:"String"}, { strict: false}); var oplogModel = db.model('oplogModel', opschema, 'oplog.rs'); oplogModel.find().exec(function(err, res){ //oplogModel.find().sort('-ts').limit(1).select('ts').exec(function(err, res){ if (err) {console.log("Oopps!"); console.log(err);} console.log (res); }); 

我得到:

 { [MongoError: not authorized for query on admin.oplog.rs] name: 'MongoError', message: 'not authorized for query on admin.oplog.rs', '$err': 'not authorized for query on admin.oplog.rs', code: 13 } 

当我使用allLocalURL时:

 { [MongoError: not authorized for query on local.oplog.rs] name: 'MongoError', message: 'not authorized for query on local.oplog.rs', '$err': 'not authorized for query on local.oplog.rs', code: 13 } 

当我使用allReaderURL时: []

但是我可以login到mongo shell并使用oplog-reader用户查询oplog并将db切换到本地。 我也可以通过在admin上使用oplog-user来禁止mongo-oplog。

我应该如何创buildmongo URL / Query来从oplog.rs获取数据?

在mlab docs中提到,要使用的连接string应该是:

mongodb://<dbuser>:<dbpassword>@ds012345-a0.mlab.com:56789,ds012345-a1.mlab.com:56790/local?replicaSet=rs-ds012345&authSource=admin