2012-12-21 95 views
2

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

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

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? 
+0

读这首先http://api.mongodb.org/ python/current/tutorial.html –

+0

事实上,我确实没有保存和加载db的信息。 – MHardy

+0

我不明白你在问什么。 'insert'将数据保存到数据库。如果您将“从/到磁盘”加载到哪里,您希望它加载到哪里?我想你可能需要在这里了解数据库的基础知识。 – Sammaye

回答

7

MongoDB的文件是便携,有一对夫妇的方式来实现你在找什么:

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

  • 对数据进行热备份,并使用MongoDB导出和导入功能选择要放置到远程计算机上的数据子集。您可以通过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/

3
  • 要使用pymongo你做了什么足以插入MongoDB中一个新的条目。即这样

    col.insert({ '名': '约翰', '职业': '官'})

将集合中自动保存这些条目。您也可以使用pymongo这样更改的条目:

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

也是它一个很好的做法,收于年底连接:

mongo.close() 
相关问题