假设我有两个服务器用于同一个mongodb副本集 - 一个使用mongodb主服务器,另一个服务器使用辅助服务器和仲裁服务器。我使用Node.JS来访问db(https://github.com/mongodb/node-mongodb-native)。在我手动断开这些服务器之间的连接后,由于仲裁服务器,主服务器成为辅助服务器,辅助服务器成为主服务器。现在,我希望被允许从中学阅读。我的代码看起来像:
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"
, "primaryPreferred");
MongoClient.connect(url, function(err db) {
if(!err) {
console.log("We are connected");
var collection = db.collection('somecollection');
collection.find({}).toArray(function(err, items) {
// Done reading from secondary if available
})
}
});
但它表示没有可用于查询的副本集成员,其中未定义ReadPreference并且标签未定义。我该怎么办?
答案 0 :(得分:0)
我认为你需要设置slaveOk:“true”。这将启用辅助查询,然后您就可以查询。
此致 Sheraz Javed