![](/img/trans.png)
[英]How to import a mongodump into my local mongodb database using pymongo?
[英]How to rename a mongodb database using pymongo?
我需要重命名我使用pymongo
創建的數據庫。 我想用pymongo
來做。 我發現另一個非常相似的 stackoverflow 問題,代碼片段看起來像 pythonesque,除了use
關鍵字使得它......我不知道是什么(更新:Perl 可能?)。
我做了一個
client.copy_database('old_name', 'new_name)
然后發現我在 `client.database_names()' 中有new_name
。 但是里面好像沒有collections? 我還需要做什么,才能使用 pymongo 命令深度復制數據庫?
從PyMongo 3.0開始,由於copy_database
已在3.0中刪除 ,因此您必須使用admin.command
:
client.admin.command('copydb',
fromdb='source_db_name',
todb='target_db_name')
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')
我嘗試了以上所有方法,但沒有一個對我有用,下面的腳本對我有用,我認為它也對你有用。(注意:con 是我的數據庫連接)
def rename_database(old_name,new_name):
#copying collections and documents from old to new database
for i in con[old_name].list_collection_names():
con[new_name][i]
for j in con[old_name][i].find():
a=con[new_name][i].insert_one(j)
#dropping old database
con.drop_database(old_name)
#testing purpose
rename_database("test","newDbName")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.