69

我曾经mongodump转储我的 mongodb 数据库,它在下面创建了一些 bson 文件dump/mydb

但我不知道如何使用它们。我试过mongoimport了,但似乎无法导入 bson 数据。那么如何使用这些bson文件呢?如何将它们导入另一个 mongodb?

4

6 回答 6

69

您需要使用mongorestore,而不是 mongoimport ...,它用于导入 json 或 csv 等。

back-up-with-mongodump文档:

mongodump从 MongoDB 数据库中读取数据并创建高保真 BSON 文件,该mongorestore工具可用于填充 MongoDB 数据库。

mongodump并且mongorestore是用于备份和恢复小型 MongoDB 部署的简单高效的工具,但对于捕获大型系统的备份并不理想。

您可以在下面的文档中阅读有关mongorestore的更多信息;我会看一下并阅读它们,因为它们非常有帮助。

http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongorestore

您还可以查看http://learnmongo.com以获取提示和帮助!

于 2011-03-31T05:12:16.733 回答
38

我正在使用mongodumpmongorestore进行日常备份和从备份中恢复。我有两个.bat文件:
首先,用于备份,您只需指定主机数据库名称和备份文件夹:

SET host=localhost:27020
SET dbNameToDump=MyDB
SET backupsFolder=Backups

mongodump.exe --host %host% --db %dbNameToDump%

SET date="%date:~10,4%-%date:~4,2%-%date:~7,2%.%time:~0,2%-%time:~3,2%"
cd %backupsFolder%
md %date%

xcopy /e ..\dump %date%

rmdir /s /q ..\dump

上面的 bat 文件2011-03-31.11-17(yyyy-MM-dd.hh-ss)在文件夹 Backups 中创建具有类似名称的文件夹,其中包含来自指定数据库的转储集合。在文件资源管理器中,它看起来像这样:

在此处输入图像描述

我用于恢复指定转储文件的第二个 bat 文件(这里您还需要指定数据库名称和包含转储文件的文件夹):

SET host=localhost:27020
SET dbNameToRestore=MyDB
SET restoreFolder=Restore

mongorestore.exe --host %host% --db %dbNameToRestore% %restoreFolder%

在文件资源管理器中:

在此处输入图像描述

此外,我正在使用 Windows 计划来自动执行备份过程。

希望以上信息对某人有用。

于 2011-03-31T08:30:00.237 回答
10

如前面的答案所述,您必须使用mongorestore而不是mongoimport. 添加到前面的答案,当您的 mongodb 运行时,执行以下命令从转储目录恢复您的转储,

mongorestore dump

这会将所有集合导入您的mydb数据库。但是,这不会在还原之前删除数据库。如果您希望在导入前删除数据库,

mongorestore --drop dump

mydb目录中的 bson 文件将恢复为mydb数据库中的集合。有关 mongorestore 的更多信息,请查看此处的文档。

于 2016-08-25T05:51:50.677 回答
6

使用 mongorestore。mongoimport 处理 mongoexport 的输出。mongodump 和 mongorestore 处理二进制数据文件,而导入/导出处理 json、csv 等。(人类可读格式)

于 2011-03-31T05:08:33.427 回答
3

为了解决这个问题,我将转储文件夹dbdump(包含 bson 文件)复制到 mongodb 的 bin 目录,并在命令提示符下执行以下命令:

1. cd "MongoDB 的 bin 文件夹路径"
(示例:cd C:\Program Files\MongoDB\Server\3.2\bin)

2. mongorestore.exe --dir ./目录名 --db 数据库名
(例如:mongorestore --dir ./dbdump --db testdb)

转储文件夹中的所有 bson 文件都将导入到您的数据库中。您可以通过执行以下命令来验证这一点:
cd "path to MongoDB's bin folder"
mongo.exe
show dbs;

于 2016-04-20T19:09:14.827 回答
1

对于 mongo 版本 3 及更高版本,请使用以下命令:

mongorestore --host=localhost --port=27017 --username=root --authenticationDatabase=admin --db=test dump_folder/

之后Mongo会询问密码

于 2019-10-15T12:28:38.177 回答