可能就在我面前,但我不确定如何在 C# 驱动程序中设置 ReadPreference.Secondary 设置?我想将查询负载分配到辅助节点而不是默认节点。我已经在节点本身上设置了slaveOk()。
任何帮助/示例将不胜感激。我只是找不到设置该属性的好例子。
谢谢
小
编辑:所以也许 ReadPreference 尚未在 C# 驱动程序中实现...看起来确实如此。那么我会使用slaveok吗?
类似于以下之一?:
var mongoServer = MongoServer.Create("mongodb://localhost/?
replicaSet=myset;slaveOk=true");
var db = mongoServer.GetDatabase("MyDb");
var coll = db.GetCollection("MyColl");
或
var cs= db.CreateCollectionSettings<BsonDocument>("Users");
cs.SlaveOk = true;
var coll = db.GetCollection(cs);
编辑2: 看起来我可能还需要修改连接字符串来装饰每个 Mongo 实例?
mongodb://serverA:27017,serverB:27017,serverC:27017/?safe=true;replicaset=myreplicaset;slaveok=true
最佳答案
是的,ReadPreferences 尚未在 C# 驱动程序中实现。我们 10gen 一直在等待实现 ReadPreferences,直到所有驱动程序(包括 mongos)都可以同时实现。此支持大约在服务器版本 2.2 时提供。
关于C# MongoDB 设置 ReadPreference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11178585/