【问题标题】:how to switch database name in mongoengine如何在mongoengine中切换数据库名称
【发布时间】:2012-08-23 19:11:40
【问题描述】:

我有多个具有相同集合名称、文档类型等的数据库。

在 Github 的源代码中,文档使用 get_db 方法来选择要处理的数据库,并且在该方法中还有另一个调用来获取服务器连接。这两个过程都使用称为“别名”的相同参数。

假设我用相同的服务器详细信息和不同的数据库、别名定义了所有数据库连接。这样,将有多个连接到同一服务器。但如果我可以在单个连接上更改数据库会更好。例如;

    import pymongo
    con = pymongo.connection(/* ... */)
    def dummyDBSwitch(db):
            global con
            return con[db]

查询前可以切换数据库吗? 谢谢。

【问题讨论】:

    标签: database pymongo mongoengine


    【解决方案1】:

    我们在 mongoengine 源代码中添加了一些方法,并通过这种方式解决了这个需求,详情:https://github.com/cool-shark/mongoengine

    【讨论】:

      【解决方案2】:

      这目前是不可能的,但将在 0.8 中进行查看。关注@metoikos 的票:https://github.com/MongoEngine/mongoengine/issues/106

      【讨论】:

      • 我们已将该功能添加到文档/连接对,但正如您已经通过代码知道的那样,它不适用于查询部分。如果没有经验,那部分真的很复杂。我应该从哪里开始应用它?我在源代码中跟踪了“Model”.objects() 方法,并找到了您添加它的位置,但我不知道您在哪里解析/应用给定的参数。我认为如果我可以在查询部分传递 switch_db 作为参数,它会起作用。有什么想法吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多