34

成功转储了一个 MongoDB:

$ mongodump -h ourhost.com:portnumber -d db_name01 -u username -p

我需要将其导入或导出到测试服务器并且遇到了困难,请帮我弄清楚。

我尝试了一些方法:

$ mongoimport -h host.com:port -c dbname -d dbname_test -u username -p
connected to host.
Password: ...

给出这个错误:

assertion: 9997 auth failed: { errmsg: "auth fails", ok: 0.0 }

$ mongoimport -h host.com:port -d dbname_test -u username -p

给出这个错误:

no collection specified!

如何指定使用哪个集合?我应该为 -d 使用什么?我想上传什么或者我想用什么作为测试?我想导入完整的数据库,而不仅仅是它的集合。

4

4 回答 4

56

is 的对应物mongodumpmongorestore和 is 的对应物mongoimportmongoexport——主要区别在于工具创建和理解的文件格式(dump以及restore读写BSON文件;export以及import处理文本文件格式:JSON、CSV、TSV。

如果您已经运行mongodump,则应该有一个名为 的目录dump,其中每个转储的数据库都有一个子目录,每个集合在这些目录中都有一个文件。然后,您可以使用以下命令恢复它:

mongorestore -h host.com:port -d dbname_test -u username -p password dump/dbname/

假设您要将数据库的内容dbname放入一个名为dbname_test.

于 2011-11-09T19:24:29.877 回答
7

您可能必须指定身份验证数据库

mongoimport -h localhost:27017 --authenticationDatabase admin -u user -p -d database -c collection --type csv --headerline --file awesomedata.csv 
于 2015-05-07T13:51:45.977 回答
3

当您执行mongodump时,它将以二进制格式转储。您需要使用mongorestore“导入”这些数据。

Mongoimport用于导入使用导出的数据mongoexport

于 2011-11-09T19:24:26.283 回答
1

这些年来,其他任何人都可能会遇到这个问题(就像我一样),如果你正在使用

你所要做的就是,

mongorestore dump/

有关更多信息,请参阅mongorestore 文档。干杯!

于 2021-06-03T15:41:29.700 回答