【问题标题】:Multiple Connection on mongoengine.. Give me some examples~mongoengine上的多重连接..给我一些例子~
【发布时间】:2012-01-14 02:31:21
【问题描述】:

我在 django 中使用 mongoengine。

在我的项目 Web 应用程序中,我需要连接至少两台服务器:一台本地用于会话,另一台连接到 mongolab(mongodb 托管服务公司)。

所以..我需要连接本地主机进行会话..同时连接到远处的另一台服务器。

如何在 mongoengine 上实现多个连接?

请给我一些例子。


a Web application   --- connecting ---> localhost for session
                    --- connecting ---> mongolab for application database

【问题讨论】:

    标签: python django database-connection mongoengine mlab


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      根据mongoengine documentation,要使用多个数据库,您可以使用connect() 并为连接提供一个别名 名称。在后台,它使用register_connection() 来存储数据,如果需要,您可以预先注册所有别名。

      connect(alias='user-db-alias', db='user-db')
      connect(alias='book-db-alias', db='book-db')
      connect(alias='users-books-db-alias', db='users-books-db')
      
      class User(Document):
          name = StringField()
      
          meta = {'db_alias': 'user-db-alias'}
      
      class Book(Document):
          name = StringField()
      
          meta = {'db_alias': 'book-db-alias'}
      
      class AuthorBooks(Document):
          author = ReferenceField(User)
          book = ReferenceField(Book)
      
          meta = {'db_alias': 'users-books-db-alias'}
      

      你也可以使用switch_db()方法。

      disconnect() 函数可用于断开特定连接。这可用于全局更改连接:

      from mongoengine import connect, disconnect
      connect('a_db', alias='db1')
      
      class User(Document):
          name = StringField()
          meta = {'db_alias': 'db1'}
      
      disconnect(alias='db1')
      
      connect('another_db', alias='db1')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-29
        • 1970-01-01
        • 2019-10-29
        • 2023-03-25
        • 2017-10-07
        • 1970-01-01
        • 2013-02-04
        • 1970-01-01
        相关资源
        最近更新 更多