为什么Mongoid没有在分片环境中将slaveOk发送给mongos?

时间:2011-11-08 15:43:31

标签: mongodb mongoid sharding

我可以从'mongos'控制台发出查询,并看到读取的内容是初选。我可以成功执行rs.slaveOk();然后触发相同的查询,并看到读取到了第二个。

问题在于,无论我尝试什么,我都无法在Mongoid中获得查询以获得第二部分。它似乎没有发送slaveOk。我已尝试在 mongoid.yml 中设置read: :secondary,我也尝试read_secondary: true,但底层连接不是副本设置,所以我在想这就是为什么mongoid无视它。

还有其他方法(除了创建我自己的连接池并设置:slave_ok)我可以让mongoid工作吗?我错过了一些神奇的无证yml设置吗?

1 个答案:

答案 0 :(得分:2)

由于Mongoid连接到单个mongos路由器,只需在mongoid.yml中的主机名条目下添加以下行:

slave_ok: true