2

可能就在我面前,但我不确定如何在 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);

EDIT2: 看起来我可能需要修改连接字符串来装饰每个 Mongo 实例?

mongodb://serverA:27017,serverB:27017,serverC:27017/?safe=true;replicaset=myreplicaset;slaveok=true
4

1 回答 1

2

是的,C# 驱动程序中尚未实现 ReadPreferences。我们 10gen 一直在等待实现 ReadPreferences,直到包括 mongos 在内的所有驱动程序都可以同时实现。这种支持应该大约在服务器版本 2.2 时提供。

于 2012-06-25T12:06:29.947 回答