Pra*_*san 2 mongodb node.js mongojs mongodb-replica-set
我有2个mongo实例在2个不同的服务器(一个主服务器和另一个辅助服务器)中运行;我可以使用以下连接代码从主服务器检索文档:
var db = mongojs('user:pswd@localhost:27017/mydb?authSource=admin');
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试从辅助服务器检索文档时,出现以下错误:
{[MongoError:不是master和slaveOk = false]
名称:“ MongoError”,
消息:“ not master and slaveOk = false”,
确定:0,
errmsg:“ not master and slaveOk = false”,
代码:13435}
我也尝试使用代码:
var db = mongojs('user:pswd@localhost:27017/mydb?authSource=admin&slaveOk=true');
Run Code Online (Sandbox Code Playgroud)
我想念什么?
小智 6
由于您正在尝试从数据库级别读取辅助数据库。您应该在副本集的连接URL中指定readPreferences“ secondaryPreferred”。
您可以参考该文档,其中详细描述了该操作。
var MongoClient = require('mongodb').MongoClient
, format = require('util').format;
var url = format("mongodb://%s,%s,%s/%s?replicaSet=%s&readPreference=%s"
, "localhost:27017",
, "localhost:27018"
, "localhost:27019"
, "exampleDb"
, "foo"
, "secondaryPreferred");
MongoClient.connect(url, function(err db) {
if(!err) {
console.log("We are connected");
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3296 次 |
| 最近记录: |