【问题标题】:How can I connect a mongodb replicaset using mongoengine?如何使用 mongoengine 连接 mongodb 副本集?
【发布时间】:2013-12-18 20:06:45
【问题描述】:

我正在尝试使用 MongoEngine 连接到 MongoDB 副本集?我想连接到任何可用的辅助服务器。

我只能找到 pyMongo 的例子。有什么帮助吗?

【问题讨论】:

    标签: mongodb mongoengine replicaset flask-mongoengine


    【解决方案1】:

    如果您想连接到辅助服务器,您需要specify a read preference,例如SECONDARYSECONDARY_PREFERRED。请注意,从辅助节点读取数据时,您应该预计数据最终是一致的并且可能是陈旧的(即更改可能尚未从主节点复制)。

    您需要从基本的pymongo 驱动程序导入ReadPreference 以获得常量列表。您可以在连接级别或每个查询指定默认 read_preference

    使用次要首选的示例(如果次要不可用,将从主要读取):

     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 检查读取是否将发送到辅助节点。

    【讨论】:

    • 这看起来不错,但是如何强制连接使用辅助服务器并避免使用主服务器?在上面的示例中,它将连接到第一个服务器,但它是主服务器。
    • @rat:对不起,错过了关于从中学阅读的部分:)。我已经更正了这个例子。
    猜你喜欢
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 2012-12-04
    • 2015-06-26
    • 1970-01-01
    • 2021-04-29
    • 2013-05-25
    相关资源
    最近更新 更多