如何导入转储的Mongodb?

问题描述 投票:0回答:5

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

mongodb mongoimport mongorestore
5个回答
73
投票

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
的新数据库中。


9
投票

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

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

你所要做的就是,

mongorestore dump/

请参阅 mongorestore 文档 了解更多信息。干杯!


7
投票

您可能需要指定身份验证数据库

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

5
投票

当您执行

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

Mongoimport
用于导入使用
mongoexport

导出的数据

0
投票

对于希望将不同数据库或 MongoDB 集群的转储恢复到新数据库或 MongoDB 集群的任何人,您可以在包含转储文件夹的目录中执行以下操作,假设它具有默认的“转储”:

mongorestore --uri "<cluster-connection-string>" /dump

如果您使用 MongoDB Atlas,您可以在其 UI 中找到您的连接字符串。

© www.soinside.com 2019 - 2024. All rights reserved.