我正在尝试使用MongoEngine连接到MongoDB副本集?我想连接到任何可用的辅助服务器。
我只能找到pyMongo的例子。有什么帮助吗?
答案 0 :(得分:9)
如果您想要连接到辅助服务器,则需要specify a read preference,例如SECONDARY
或SECONDARY_PREFERRED
。请注意,从辅助数据中读取数据时,您应该预期数据最终是一致的,并且可能是陈旧的(即更改可能尚未从主数据库复制)。
您需要从基础ReadPreference
驱动程序导入pymongo
以获取常量列表。您可以在连接级别或每个查询中指定默认read_preference
。
使用secondary preferred的示例(如果secondary不可用,将从primary读取):
from mongoengine import connect
from pymongo import ReadPreference
connect('mydb', host='mongodb://server1:27017,server2:27017,server3:27017', replicaSet='replset', read_preference=ReadPreference.SECONDARY_PREFERRED)
您可以使用mongostat --discover
检查读取是否转到辅助节点。