使用c#驱动程序查询特定的mongo secondary

时间:2012-03-20 20:27:03

标签: mongodb mongodb-.net-driver

我有一个mongo(2.0.3)副本集。

如果我使用标准c#驱动程序连接到特定节点(即我的连接字符串不包含多个主机)并指定slaveOk(),该查询是否会被该集合的随机成员满足,或者仅我连接到的节点是什么?

如果是前者,我怎样才能实现后者?

谢谢。

3 个答案:

答案 0 :(得分:3)

如果您的连接字符串只有一个主机名(并且没有replicaSet = name或connect = replicaSet),C#驱动程序将以直接模式连接到该服务器并仅使用它。

通过列出多个主机名(称为种子列表)或使用replicaSet = name或connect = replicaSet来触发副本集语义(它使用整个集合)。

因此,如果您只想使用那个主机,那么您就是在正确的轨道上。您必须在连接字符串上指定slaveOk,否则如果该服务器不是主服务器,则连接将失败。

答案 1 :(得分:1)

指定 connect = direct 作为连接字符串中的参数解决了我通过Powershell连接到辅助节点的问题。

答案 2 :(得分:0)

ID | stmt_dt | renewal_dt -- 1 |1/31/15 | NA 1 |2/28/15 | 2/28/15 1 |3/31/15 | 2/28/15 1 |4/30/15 | 4/30/15 1 |5/31/15 | 4/30/15 2 |1/31/15 | NA 2 |2/28/15 | 2/28/15 2 |3/31/15 | 2/28/15 2 |4/30/15 | 2/28/15 2 |5/31/15 | 2/28/15 3 |1/31/15 | 1/31/15 3 |2/28/15 | 1/31/15 3 |3/31/15 | 1/31/15 3 |4/30/15 | 1/31/15 3 |5/31/15 | 1/31/15 4 |1/31/15 | NA 4 |2/28/15 | NA 4 |3/31/15 | NA 4 |4/30/15 | NA 4 |5/31/15 | NA 用于收集提供程序