2016-05-12 13 views
2

私はMongo 2.6、Pymongo 2.7.2およびMongoengine 0.8.7を使用しています。特定の読み取りクエリの場合、私は自分のレプリカセットのセカンダリを使用したいと思います。 MongoEngineはクエリの読み込み設定を指定します

from pymongo.read_preferences import ReadPreference  
<collection_name>.objects().read_preference(ReadPreference.SECONDARY_PREFERRED) 

しかし、クエリは常にそれはそう主に行っている(このクエリのログは常に、プライマリに見られる):mongoengineドキュメント hereに指定されている次のようにそのため、私は私のクエリを書きました。構文は正しいですか?はいの場合、セカンダリが照会されているかどうかを確認するにはどうすればよいですか?

+0

スキップ、制限などの別の方法を連鎖している場合、[このバグ](https://github.com/MongoEngine/mongoengine/pull/1042)が原因である可能性があります。 –

+0

私は私のPymongoバージョンは2.7.2で、バグは> 3.0です。 2.7.2でも壊れていると思う。 – Yahya

+0

メッセージは「今のところ、修正はpymongo ver <3.0」のみで動作するので、2.7と3+の両方が影響を受けると思った(違いはあるが)。 order_byを付けずに再試行して、再確認することができます。 –

答えて

0

問題の原因を突き止めました。

connect(db = "my_db", replicaSet = "my_replica_set_name", host = "hostname", port = "port_number")

上記指定されるように、リード優先の構文が正しい:MongoEngine において方法、次のように指定する必要さらにreplicaSetパラメータを「接続」。 replicaSetパラメータを渡すとパラメータが機能しました。

関連する問題