如何导入倾销的Mongodb?

时间:2011-11-09 19:16:54

标签: mongodb mongoimport mongorestore

成功转储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使用什么?我想上传什么或者我想用什么作为测试?我想导入完整的DB不仅是它的集合。

4 个答案:

答案 0 :(得分:35)

mongodump的对应方为mongorestoremongoimport的对应方为mongoexport) - 主要区别在于创建和理解的文件格式工具(dumprestore读取和写入BSON文件; exportimport处理文本文件格式:JSON,CSV,TSV。

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

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

假设您要将数据库dbname的内容放入名为dbname_test的新数据库中。

答案 1 :(得分:3)

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

Mongoimport用于导入使用mongoexport

导出的数据

答案 2 :(得分:3)

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

mongoimport -h localhost:27017 --authenticationDatabase admin -u user -p -d database -c collection --type csv --headerline --file awesomedata.csv 

答案 3 :(得分:0)

对于其他人来说,这些年来(就像我一样),如果您正在使用

  • 使用 mongodump 创建的转储
  • 并尝试从 dump 目录恢复
  • 并且将使用默认端口 27017

你所要做的就是,

mongorestore dump/

有关详细信息,请参阅 mongorestore doc。干杯!