我使用mongoengine" connect"访问mongo db的方法。现在我在mongodb服务器上配置了副本集。 为了进行性能优化,我想将所有读取请求路由到具有特定标记的slave / secondary mongo服务器。
这是我的连接电话
mongoengine.connect(attrs['DB_NAME'], conn,
read_preference=ReadPreference.SECONDARY_PREFERRED,
tag_sets=[{'loc': 'nm'}, {}],
replicaSet='replset',
host=attrs['HOST'], port=attrs['PORT'],
username=attrs['USERNAME'], password=attrs['PASSWORD'],
max_pool_size=attrs['MAX_POOL_SIZE'])
错误我正在执行
mongoengine.connection.ConnectionError:无法连接到数据库 默认值: 172.22.67.38:27017不是副本集replset的成员
答案 0 :(得分:0)
这就是我能够使用pymongo 2.8和mongoengine 0.8.7连接到mongodb以获得二次读取偏好。
from pymongo.read_preferences import ReadPreference
mongoengine.connect(<db_name>, <db_alias>,
read_preference=ReadPreference.SECONDARY_PREFERRED,
tag_sets=[{'loc': 'nm'}, {}],
replicaSet='replset',
host='mongodb://<username>:<password>@172.22.67.38:27017/<db_name>', port=attrs['PORT'],
max_pool_size=100)