如何使用pymongo备份和恢复MongoDB?

时间:2013-07-25 14:59:35

标签: python mongodb pymongo

pymongo 是否提供 API 以启用集合和行的备份或导出?

1 个答案:

答案 0 :(得分:2)

让我分两部分回答这个问题

  • pymongo是否提供API以启用备份或导出 集合和行?

截至目前,不是。它没有提供备份/ mongodump的绑定方法

  • 可以使用pymongo来启用集合的备份或导出 行?

是。 假设我们有一个集合col,其中包含以下文档

{
   'price':25,
   'name':'pen'
},
{
   'price':20,
   'name':'pencil'
},
{
   'price':10,
   'name':'paper'
},
{
   'price':25000,
   'name':'gold'
}

我们的目标是备份所有符合价格低于100的条件的文件。 使用pymongo的查找功能。

可以做到这一点
db.col.find({'price':{'$lt': 100}})

上面的代码返回一个游标对象。我们备份所需的所有文档都在该游标对象中。

插入所有文档的一种简单方法是逐个递归调用文档并插入它们。

但更好的方法是使用光标上的list()并一次性插入所有文档。

cursor = db.col.find({'price':{'$lt': 100}})
db.backup.insert(list(cursor))

备份集合的内容将是

{
   'price':25,
   'name':'pen'
},
{
   'price':20,
   'name':'pencil'
},
{
   'price':10,
   'name':'paper'
}

如果没有要求将条目限制为备份。可以使用空的find()

cursor = db.col.find()
db.backup.insert(list(cursor))