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

MHa*_*rdy 3 python mongodb pymongo

我是mongoDB和pymongo的新手,试图学习如何从/向磁盘加载和保存数据库,以便我可以随身携带,发送给人等.我已经阅读了http://api.mongodb上的教程.org/python/current/tutorial.html但找不到有关保存和加载数据库的有用信息.

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

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?
Run Code Online (Sandbox Code Playgroud)

Sam*_*aye 7

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

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

  • 对数据进行热备份,并使用MongoDBs导出和导入功能选择要放置到远程计算机上的数据子集.你可以通过mongodump和进行热备份mongorestore.您可以在此处找到常规文档页面: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/