用于进行备份的python mongo db聚合查询

时间:2017-09-28 15:19:48

标签: python mongodb mongodb-query aggregation-framework

之前使用db[collection].aggregate([{'$match': {}}, {'$out': collection + timestamp}])的帖子之一被建议用于备份集合。但这是创建一个临时集合。

我想以python格式使用以下查询。

db.collection1.find().forEach(function(d){db.collection2.save(d)})

谢谢,

2 个答案:

答案 0 :(得分:0)

首先,我假设您正在使用PyMongo库。 Here是集合上查找函数的文档。

Here是集合上insert_one函数的文档。这是从一个集合中获取所有文档并将它们插入另一个函数的一种方法。

for doc in db.collection1.find({}):
    db.collection2.insert_one(doc)

您还可以使用insert_many函数以不同的方式执行相同的操作。

db.collection2.insert_many(db.collection1.find({}))

免责声明:我还没有完全测试过这些!确保在以任何方式依赖代码之前进行测试。

答案 1 :(得分:0)

这是你在python中执行该复制的方式:

from pymongo import MongoClient

client = MongoClient()
db = client.yourDBname

n = 0
for r in db.sourceCollection.find():
    db.targetCollection.insert(r)
    n += 1

print "copied",n,"items"