成功转储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不仅是它的集合。
答案 0 :(得分:35)
mongodump
的对应方为mongorestore
(mongoimport
的对应方为mongoexport
) - 主要区别在于创建和理解的文件格式工具(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
的新数据库中。
答案 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)
对于其他人来说,这些年来(就像我一样),如果您正在使用
dump
目录恢复27017
你所要做的就是,
mongorestore dump/
有关详细信息,请参阅 mongorestore doc。干杯!