1

有没有办法在集合或数据库级别中定义 mongoskin 中的读取偏好这里是来自 mongodb 本机 nodejs 驱动程序 http://learnmongodbthehardway.com/ex22.html的示例

var readMongo = require("mongodb").MongoClient;  

MongoClient.connect('localhost:3000/tes?readPreference=secondaryPreferred' , 

   function(err ,db){
        db.collection("sites").findOne(
        {
            $or: [{'a' : e}, 
                    {'a' : d},
                    {'a' : c},
                    {'a' : b}]
        }, function(error, result1){
            if(error){
                console.log(error);
            } else {
                callback(null, result1)
                db.close();
            }       
        });
});

}

我目前正在一组带有副本集的分片服务器上运行 mongos。我需要将所有读取查询路由到副本集的次要成员。

4

2 回答 2

1

最后有办法将您的查询路由到辅助 mongod

只需将辅助服务器的主机和端口放在 mongoskin 连接字符串中,如下所示


var mongo = require("mongoskin");
var database = mongo.db( "mongod://username:password@secondaryDatabasehost:port/database",{safe:true , slaveOk : true});

slaveOk :true将允许辅助 mongod 用于只读查询。没有这个 mongo 将不允许从辅助查询并给你一个错误。

[Mongo error "$err" : "not master" ]
于 2014-03-20T14:43:53.100 回答
-1

答案是肯定的。

看这里:</p>

http://mongodb.github.io/node-mongodb-native/driver-articles/anintroductionto1_1and2_2.html#read-preferences

于 2013-07-30T03:40:42.157 回答