用mongoenine切换数据库

时间:2013-05-27 09:22:25

标签: python mongoengine

我在mongoengine中切换数据库时遇到问题。我希望以下代码按预期工作:


class Test(Document):
    f1 = StringField()

db_names = ['s' + str(i) for i in range(5)]

for db_name in db_names:
    connect(db_name)
    for i in range(10):
        Test.objects.create(f1=uuid1().hex)
    disconnect(db_name)

我知道context_managers.switch_db并且看过how to switch database name in mongoengine,但在我的情况下它不起作用。我需要为所有模型切换我的数据库。

1 个答案:

答案 0 :(得分:1)

你试过吗?

class Test(Document):
    f1 = StringField()  

db_names = [register_connection('s' + str(i), ... ) for i in range(5)]
for db_name in db_names:
    with switch_db(Test, db_name) as Test:
    for i in range(10):
        Test(f1=uuid1().hex).save()

有关register_connection的更多信息,请参阅控制台上的help(register_connection)