gpt4 book ai didi

node.js - 无法在 mongoose 中查询 Oplog

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:22 24 4
gpt4 key购买 nike

我正在 MongoLabs mongoDb 中查询 mongo oplog。由于 Mongolabs 不允许为本地创建用户,因此我在管理中创建了一个 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 时:[]

但是我可以登录mongo shell并使用oplog-reader用户查询oplog并将数据库切换到本地。我还可以使用管理员上的 oplog-user 通过 mongo-oplog 跟踪 oplog。

我应该如何创建 mongo URL/Query 以从 oplog.rs 获取数据?

最佳答案

mlab docs 中提到过,要使用的连接字符串应该是:

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

关于node.js - 无法在 mongoose 中查询 Oplog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36142811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com