首页 > 解决方案 > MongoDB:如何正确地将集合从 MongoDB 导出到我的计算机?

问题描述

鉴于以下数据库和相关集合scows.tasks,我如何导出 2GB 以用于存储目的以便腾出空间?

贮存

我一直在尝试使用各种方法来做到这一点,但没有一种方法奏效:

mongoexport --verbose --db scows --collection tasks --out tasks.json --verbose

mongoexport -vvvv --db scows --username='my_username' --password='my_passwd' --collection tasks --out /home/to/Desktop/storageMongo/tasks.json -f 'my_passwd'

mongoexport --host=127.0.0.1 --db scows --collection tasks --out tasts.json

在这样做时,我总是遇到同样的错误:

2020-02-13T12:55:17.183-0500 将侦听 SIGTERM、SIGINT 和 SIGKILL 2020-02-13T12:55:20.690-0500 连接到数据库服务器时出错:没有可访问的服务器

我用来解决问题的帖子,但不幸的是并没有帮助我:

1)我用了这个,但什么也没发生

2)也与上述结果相同

3)这个来源很有用,但没有帮助我找出问题所在

4)最后这个可以帮助我执行命令,但我总是遇到同样的错误。

5)也正如官方文档中提到的,我使用我的Ubuntu 18.04shell作为终端来输入命令而不是mongoshell。

如何正确地将集合从 MongoDB 导出到我的计算机?

标签: mongodb

解决方案


尝试建议的选项之一(Ubuntu 终端):

#localhost:27017 security disabled
mongoexport --db scows --collection tasks --out /tmp/tasks.json

#some_ip:some_port security disabled
mongoexport --host="some_ip:some_port" --db scows --collection tasks --out /tmp/tasks.json

#some_ip:some_port security enabled
mongoexport --host="some_ip:some_port" --username=user --password=pass --db scows --collection tasks --out /tmp/tasks.json

这会将 JSON 文件(无压缩)导出到/tmp目录

但是如果你用mongodump命令导出,你可以压缩你导出的数据

mongodump --host="some_ip:some_port" --username=user --password=pass --db scows --collection tasks --gzip --out /tmp

这会将 BSON 结构化文件(压缩)导出到/tmp/scows目录

编辑:从 MongoDB Atlas 导出,使用这个:

mongoexport --uri="mongodb+srv://username:password@vessel-tracker-cluster-x2lpw.mongodb.net/scows" --collection tasks --out /tmp/tasks.json

2020-02-13T20:20:51.387+0100    connected to: mongodb+srv://[**REDACTED**]@vessel-tracker-cluster-x2lpw.mongodb.net/scows
2020-02-13T20:20:52.522+0100    [........................]  scows.tasks  0/XXX  (0.0%)
2020-02-13T20:20:52.642+0100    [########################]  scows.tasks  XXX/XXX  (100.0%)
2020-02-13T20:20:52.643+0100    exported XXX records

编辑 2:用户有忽略 --uri 参数并连接到本地主机的 DNS 问题。将公共 DNS 添加到resolve.conf, mongoexport 能够导出数据


推荐阅读