2

を使用して作成したデータベースの名前を変更する必要がありますpymongo。使ってやりたいpymongoです。非常によく似たこの他のスタックオーバーフローの質問を見つけました。コードスニペットは、useそれを作るキーワードを除いてpythonesqueに見えます...何がわかりません(更新:おそらくPerl?)。

私はやった

client.copy_database('old_name', 'new_name)

new_nameそして、「client.database_names()」にあることがわかりました。しかし、コレクションがないように見えますか? pymongo コマンドを使用してデータベースを深くコピーするには、他に何をする必要がありますか?

4

2 に答える 2

4

PyMongo 3.0 以降では、3.0 で削除されたadmin.commandため、使用する必要があります。copy_database

client.admin.command('copydb',
                     fromdb='source_db_name',
                     todb='target_db_name')
于 2015-12-15T23:35:06.823 に答える
1
import pymongo
client = pymongo.MongoClient()

client.copy_database('foo', 'bar')

assert set(client['foo'].collection_names()) == set(client['bar'].collection_names())

for collection in client['foo'].collection_names():
    assert client['foo'][collection].count() == client['bar'][collection].count()

client.drop_database('foo')
于 2013-09-05T22:07:33.290 に答える