我们当前的Python管道从Web上擦除并将这些数据存储到MongoDB中。之后,我们将数据加载到分析算法中。这可以在本地计算机上很好地工作,因为mongod
找到了数据库,但是我想在Google Drive等共享平台上上传数据库,这样其他用户就可以使用这些数据,而无需再次运行刮刀。
我知道MongoDB默认将数据存储在/ data / db,所以我可以将整个/ data / db上传到Google云端硬盘吗?
另一种选择似乎是将MongoDB导出为JSON或CSV,但我们当前的分析算法实现已经直接从MongoDB加载。
答案 0 :(得分:5)
是的,您可以上传/data
目录,这是备份数据库的一种方法。您也可以使用mongodump
与--gzip
或mongoexport
作为自己的指示。
如果您希望定期进行备份,则可以定期cp/rsync
/ data目录。您还可以定期将脚本mongodump/mongoresore
和mongoexport/mongoimport
打包到备份数据库,或者按照其他答案的建议使用mongolab。
那么你有三个选择,
mongodump
和mongorestore
/data
目录的基础内容来创建备份(如果您希望定期备份,则cp / rsync此目录)mongoexport
和mongoimport
(使用前请阅读here)使用mongodump并恢复
在版本3.x中,您只需运行(使用默认端口转储默认mongodb实例)
mongodump
早期版本需要指定--dbPath
上面的mongodump命令创建一个转储目录,在该目录中,它将为mongodb中的每个数据库创建子目录。如果您希望转储特定集合(name = collection),那么以下内容将非常有用
mongodump --db test --collection collection
您可以使用--gzip
和其他类似的命令行选项。有关更多详细信息和额外命令行选项,请阅读here。
您可以使用mongorestore
恢复转储的数据库,命令如下
mongorestore --dir <path>
就像mongodump一样,您可以指定主机名,端口号(如果是差异),数据库名称等等,请阅读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,特别是如果要导出查询结果。
答案 1 :(得分:0)
您可以使用唯一键为您的数据库创建一个小的Rest API,您团队中的所有人都可以使用它。
如果您只想使用导出一次 - 只需将其导出为JSON即可,没问题。
答案 2 :(得分:0)
您可以在云中运行MongoDB实例。例如,您可以使用MongoLab(https://mongolab.com/)或在云中的VM上安装您自己的实例,并使用其中一个云提供商,如Microsoft Azure,Amazon AWS或Google Compute引擎。或者,您可以按照JRazor的建议创建REST API,但是,这需要更多的开发工作。