如何共享MongoDB创建的数据库?

2024-05-14 10:52:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我们当前的Python管道从web上获取数据并将这些数据存储到MongoDB中。之后,我们将数据加载到一个分析算法中。由于mongod定位了数据库,所以这在本地计算机上运行得很好,但是我想把数据库上传到像googledrive这样的共享平台上,这样其他用户就可以使用这些数据,而不必再次运行scraper。在

我知道MongoDB默认将数据存储在/data/db,所以我可以将整个/data/db上传到Google驱动器上吗?在

另一个选择似乎是将MongoDB导出为JSON或CSV,但是我们当前的分析算法实现已经直接从MongoDB加载。在


Tags: 数据用户定位算法web数据库dbdata
3条回答

您可以在云中运行MongoDB实例。例如,您可以使用MongoLab(https://mongolab.com/)或在云中的虚拟机上安装自己的实例,并使用诸如microsoftazure、amazonaws或googlecomputeengine之类的云提供商。或者,您可以按照JRazor的建议创建restapi,但是,这将需要更多的开发工作。在

你可以用你的团队创建一个独一无二的数据库。在

如果您只想使用一次导出-只需将其导出到JSON,没有问题。在

可以,您可以上传/data目录,这是备份数据库的一种方法。您还可以将mongodump gzip或{}一起使用,正如您自己指出的那样。在

如果希望定期执行备份,则可以定期cp/rsync/data目录。您还可以使用脚本mongodump/mongoresoremongoexport/mongoimport定期备份数据库,或者按照其他答案的建议使用mongolab。在

所以你有三个选择

  1. 使用mongodumpmongorestore
  2. 您可以通过复制/data目录的底层内容来创建备份(如果需要常规备份,请cp/rsync此目录)
  3. mongoexport和{}(在使用之前请阅读here

使用mongodump和restore

在版本3.x中,您只需运行(转储带有默认端口的默认mongodb实例)

mongodump

早期版本需要指定 dbPath

上面的mongodump命令创建了一个dump目录,它将在其中为mongodb中的每个数据库创建子目录。如果您希望转储一个特定的集合(name=collection),那么下面的内容将很有用

^{pr2}$

您可以使用 gzip和其他类似的命令行选项。有关详细信息和额外的命令行选项,请阅读here。在

可以使用mongorestore还原转储数据库,命令如下

mongorestore  dir <path> 

就像mongodump一样,您可以指定主机名、端口号(如果有差异)、db名称等,等等read here以获取更多信息。在

使用mongoexport和mongoimport

允许以JSON或CSV格式导入。不建议对prod进行完全备份,请参见here。要导出,请运行一个包含以下一个或多个选项的命令(指定要备份的数据库名称和集合默认为JSON,但如果希望导入CSV,则 type=csv

mongoexport  db threads  collection messages  out messages.json

可以使用mongoimport将备份的集合导入mongodb,如下所示

mongoimport  db threads  collection message  file messages.json

有关更多选项,请参见here,特别是如果要导出查询结果。在

相关问题 更多 >

    热门问题