如何使用pymongo实现只读连接

时间:2017-03-17 04:07:00

标签: python mongodb pymongo

如何实现与MongoDB的辅助节点的只读连接。 我有一个主节点和两个辅助节点。我想要一个只读连接到辅助节点。

我试过了MongoReplicaSetClient,却没有得到我想要的东西。 是否可以与主节点建立只读连接?

2 个答案:

答案 0 :(得分:2)

您希望在查询中指定Read PreferenceSecondary Preferred的读取首选项将向辅助节点发送查询,但在辅助节点不可用时将回退到主节点。

pymongo中的读取首选项在MongoClient中配置:

>>> client = MongoClient(
...     'localhost:27017',
...     replicaSet='foo',
...     readPreference='secondaryPreferred')
>>> client.read_preference
SecondaryPreferred(tag_sets=None)

可以找到更多信息(以及上述来源)here.

答案 1 :(得分:1)

默认情况下,辅助节点是只读的。但是,您可以指定读取首选项以从辅助节点读取。默认情况下,它从主数据库读取。

这可以使用连接字符串中的readPreference = secondary来实现