使用pymongo备份集合

时间:2016-12-09 17:49:47

标签: pymongo

因为mvalodb3 +已经弃用了eval()和copyTo()。我正在寻找一种方法来使用像

这样的东西来收集资产

db.collection.find()。的forEach(函数(d){db.collection_backup.save(d)})

我基本上都在寻求这两方面的帮助。

1:如何使用PyMongo在Mongo上运行任何.js文件。例: mongo< something.js和js文件可以有一些特定的命令或函数。 2:如何运行上面的代码来对100多个集合进行备份'使用pymongo的数据库

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

PyMongo 包含在服务器上执行.js文件的功能。

带$ out的聚合管道是复制集合的有效方法。如果要备份“角色”集合,例如,在每个数据库中:

from pymongo import MongoClient

client = MongoClient()
for db_name in client.database_names():
    db = client[db_name]
    if 'role' in db.collection_names():
        print('copy %s.role' % db_name)
        db.role.aggregate([{'$match': {}}, {'$out': 'role_backup'}])