2

我需要重命名使用pymongo. 我想用pymongo它来做。我发现this other stackoverflow question非常相似,代码片段看起来像pythonesque,除了use使它的关键字......我不知道是什么(更新:可能是Perl?)。

我做了一个

client.copy_database('old_name', 'new_name)

然后发现我new_name在`client.database_names()'中有。但是里面好像没有收藏?我还需要做什么,使用 pymongo 命令深度复制数据库?

4

2 回答 2

4

从 PyMongo 3.0 开始,您必须使用admin.commandsince copy_database was removed in 3.0

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 回答