3

我是 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?
4

2 回答 2

9

MongoDB 文件是可移植的,有几种方法可以实现您正在寻找的内容:

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

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

于 2012-12-21T11:26:51.577 回答
2
  • 要使用 pymongo 在 mongodb 中插入新条目,您所做的就足够了。即这样做

    col.insert({'name': 'John','occupation': 'officer'})

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

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

最后关闭连接也是一个好习惯:

mongo.close()
于 2012-12-21T12:14:54.687 回答