1

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 について知っていて、mongoengine でデータベース名を切り替える方法を調べましたが、私の場合はうまくいきません。すべてのモデルのデータベースを切り替える必要があります。

4

1 に答える 1

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)

于 2013-06-06T11:16:59.367 に答える