python用pymongo实现mongodb数据库重命名

mongodb不支持rename database,只支持renameCollection。
实现rename database方法:
方法1:

测试时别把database删了!!

print('method1:copydb + drop_database')
start_time = time.time()
self.client.admin.command('copydb', fromdb=‘test’, todb=('test_1'))
# self.client.drop_database('test')
print(time.time() - start_time)
方法2:

需要注意方法2操作会自动实现drop_database功能!!
实现过程大概是将 源数据库的collection搬到目标数据库的collection,mongodb的database下collection如果为空,database会自动消失。

print('method2:renameCollection')
start_time = time.time()
collection_list = self.db.list_collection_names()
for item in collection_list:
    query = {
        'renameCollection': 'test.' + item,
        'to': 'test_2.' + item
    }
    self.client.admin.command(query)
print(time.time() - start_time)

测试的database数据量在7GB,方法1耗时270s,方法2耗时220s。
起初测试的database数据量很小,方法1耗时1.7s,方法2耗时0.05s,让人很激动,接着用了比较正式的数据库测试,提升不是太大,有点失望。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值