通过JavaScript从mongodb中读取辅助副本集

我有两个mongo实例在两个不同的服务器(一个主要和其他次要)运行; 我能够使用此连接代码从主服务器检索文档:

var db = mongojs('user:pswd@localhost:27017/mydb?authSource=admin'); 

但是,当我尝试从辅助服务器检索文档时,出现以下错误:

{[MongoError:not master and slaveOk = false]
名称:'MongoError',
消息:'not master and slaveOk = false',
OK:0,
errmsg:'not master and slaveOk = false',
代码:13435}

我也尝试使用代码:

 var db = mongojs('user:pswd@localhost:27017/mydb?authSource=admin&slaveOk=true'); 

我错过了什么?

由于您正尝试从数据库级读取辅助数据。 您应该在副本集的连接URL中指定readPreferences“secondaryPreferred”。

你可以参考这个文档,里面详细描述了怎么做。

使用MongoDB Node.JS驱动程序读取首选项

 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"); } });