从django连接到多个mongodb实例

tbi*_*eev 3 django mongodb mongoengine

我正在使用mongoengine和Django,并且在我的项目中需要在提供单个请求时连接到两个MongoDB实例.如果我使用它可以正常工作:

connect("mdb1")
#do stuff with mdb1
...
connect("mdb2")
#do stuff with mdb2
Run Code Online (Sandbox Code Playgroud)

但我想知道这是否是一种正确的做法.

Mat*_*ert 12

MongoEngine 0.6中添加了多个数据库支持

演示使用register_connection.

alias_lists = ['users-books-db', 'user-db', 'book-db'] # list of aliases
dbs = ['author-book-pairs', 'users', 'books'] # list of databases
for alias, db in zip(alias_lists, dbs):
    register_connection(alias, db)

class User(Document):
    name = StringField()
    meta = {"db_alias": "user-db"}

class Book(Document):
    name = StringField()
    meta = {"db_alias": "book-db"}

class AuthorBooks(Document):
    author = ReferenceField(User)
    book = ReferenceField(Book)
    meta = {"db_alias": "users-books-db"}
Run Code Online (Sandbox Code Playgroud)