【问题标题】:MongoEngine specify read preference on queryMongoEngine 在查询中指定读取首选项
【发布时间】:2019-04-23 18:20:01
【问题描述】:

我正在使用 Mongo 2.6、Pymongo 2.7.2 和 Mongoengine 0.8.7。对于特定的读取查询,我想使用我的副本集的辅助。因此,正如 mongoengine 文档 here 中所指定的,我将查询编写如下:

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

但是,查询似乎总是转到主节点(此查询的日志始终只在主节点中可见)。语法是否正确?如果是,我如何验证是否正在查询辅助节点?

【问题讨论】:

  • 可能是由于this bug,如果您正在链接另一种方法,例如跳过、限制等。
  • 我用 order_by 方法链接它,但我的 Pymongo 版本是 2.7.2 并且错误在任何版本中 >= 3.0。我猜它在 2.7.2 中也被破坏了。
  • 消息显示“截至目前,该修复仅适用于 pymongo ver

标签: mongodb pymongo mongoengine replicaset


【解决方案1】:

找出问题所在。 MongoEngine "connect"方法中,replicaSet参数需要指定如下:

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

读取首选项的语法如上所述是正确的。传入 replicaSet 参数使其工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多