2011-11-08 12 views
1

私は 'mongos'コ​​ンソールからクエリを起動でき、読み込みがプライマリにヒットすることがあります。 rs.slaveOk();を正常に実行してから、同じクエリを実行して、読み取りがセカンダリにヒットしたことを確認できます。なぜMongoidはシャード環境でmongosにslaveOkを送信しないのですか?

問題は、何を試しても、私はでセカンダリにヒットすることができないということです。 slaveOkを送信していないようです。私はread: :secondarymongoid.ymlに設定しようとしましたが、read_secondary: trueも試しましたが、基本的な接続はレプリカセットではないので、モンゴイドがそれを無視している理由を考えています。

mongoidを動作させるには、他にも(自分の接続プールを作成して:slave_okを設定することはできません)ですか?私は、いくつかの魔法の文書化されていないyml設定が欠けていますか?

答えて

2

Mongoidは、単一mongosルータに接続されているので、ちょうどmongoid.ymlにホスト名エントリの下に次の行を追加します。

slave_ok: true 
+2

私たちの本当の問題はmongoidのYMLに、我々は代わりに「ホスト」を指定したことでした「ホスト」の私たちはローカルでモンゴとしか話していないので、我々はちょうど 'ホスト'仕様が必要だと思った。しかし、これにより、レプリカセット接続の代わりに通常のmongo接続として接続が確立されるため、slaveOkは送信されませんでした。 –

関連する問題