使用pymongo从磁盘加载和保存mongoDB数据库

时间:2012-12-21 10:36:50

标签: python mongodb pymongo

我是mongoDB和pymongo的新手,试图学习如何从/向磁盘加载和保存数据库以便我可以随身携带它,将其发送给人们等等。我已经阅读了{{3}上的教程但是找不到有关保存和加载数据库的有用信息。

假设我们创建了一个数据库:

import pymongo
mongo = pymongo.Connection()
db = mongo['my_db']
col = db['my_col']
col.insert({'name': 'Adam','occupation': 'student'})
col.insert({'name': 'John','occupation': 'officer'})
#how can we save the database to disk after this point 
#and later read it from another program?

2 个答案:

答案 0 :(得分:7)

MongoDB文件是可移植的,有几种方法可以实现您的目标:

  • mongod的数据目录复制到另一台计算机。此目录通常位于/data/db/mongodb。在另一台计算机上,您只需将远程目录替换为您复制的目录,然后重新启动远程mongod,此时您将在其系统上获得数据。据我所知,MongoDB在这里没有热插拔功能,您可以按需切换目录而无需停机。

  • 对数据进行热备份,并使用MongoDBs导出和导入功能选择要放置到远程计算机上的数据子集。您可以通过mongodumpmongorestore进行热备份。您可以在此处找到常规文档页面:http://docs.mongodb.org/manual/administration/backups/#using-binary-database-dumps-for-backups

  • 对您的数据进行CSV / JSON导出并将其导入远程计算机。这很像这个特定场景中的二进制备份,除了它们对终端方等也更具可读性。我还应该注意,这个方法只是插入,它与批量插入客户端迭代相同(像PHP这样的东西) CSV并在MongoDB服务器上调用批量插入。您可以在此处找到有关mongoexportmongoimport(执行此操作的程序)的更多信息:http://docs.mongodb.org/manual/administration/import-export/

您还可以在此处找到与备份数据并将其移动并在外国计算机上恢复相关的一般信息:http://docs.mongodb.org/manual/administration/backups/

答案 1 :(得分:2)

  • 要使用pymongo在mongodb中插入新条目,您所做的就足够了。即做这个

    col.insert({'name':'John','职业':'军官'})

会自动将这些条目保存在集合中。您也可以使用pymongo更改条目,如下所示:

col.update({'name': 'Adam'},{'$set':{'occupation': 'officer'}})

最后关闭连接是一个很好的做法:

mongo.close()