1. 程式人生 > >使用pymongo 批量重新命名 mongodb的collection

使用pymongo 批量重新命名 mongodb的collection

應用背景:

工作中有一項內容就是重新命名collection的, 涉及到幾十個db, 一個一個去改, 也OK,但我覺得那是個體力活, 不應該是程式設計師解決問題的方法

解決過程:

通過查詢,發現網上很多寶寶推薦使用 renameCollection() 方法來解決問題, 這個方法,在Robo 3T裡可以使用, 但達不到我想要的結果, 我需要的是批量, 把這個方法放到python裡, 報錯:

TypeError: ‘Collection’ object is not callable. If you meant to call the ‘renameCollection’ method on a ‘Collection’ object it is failing because no such method exists.

度娘了N多網站, 發現都是在推薦renamecollection()方法, 怎麼辦??

那個誰說過, 工作現場有神靈, 去看看pymongo文件吧,
在文件裡發現,rename()方法,完美解決問題.

使用方法如下:

mongourl = 'mongodb://user:[email protected]:port/admin?replicaSet=mgset-1100081&socketTimeoutMS=10000'
dbstr = 'test'
client = pymongo.MongoClient(mongourl)
db = client[dbstr]
db.oldname.rename('newname'
)

–the end–