我使用mongodump
转储我的mongodb数据库,它在dump/mydb
下创建了一些bson文件
但我不知道如何使用它们。我试过mongoimport
,但似乎无法导入bson数据。那么如何使用这些bson文件?如何将它们导入另一个mongodb?
答案 0 :(得分:65)
您需要使用 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以获取提示和帮助!
答案 1 :(得分:37)
我正在使用mongodump,mongorestore进行日常备份和从备份恢复。我有两个.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)
在文件夹备份中,其中包含来自指定数据库的转储集合。在文件资源管理器中它看起来像这样:
我使用的第二个bat文件用于retore指定的转储文件(这里你还需要指定数据库名称和带有转储文件的文件夹):
SET host=localhost:27020
SET dbNameToRestore=MyDB
SET restoreFolder=Restore
mongorestore.exe --host %host% --db %dbNameToRestore% %restoreFolder%
在文件资源管理器中:
另外,我使用Windows计划自动执行备份过程。
希望以上信息对某人有用。
答案 2 :(得分:8)
如前面的答案中所述,您必须使用 mongorestore
而不是 mongoimport
。添加到以前的答案,当您的mongodb运行时,执行以下命令从转储目录恢复转储,
mongorestore dump
这会将所有集合导入 mydb 数据库。但是,在恢复之前,这不会丢弃数据库。如果您希望在导入之前删除数据库,
mongorestore --drop dump
mydb 目录中的bson文件将作为 mydb 数据库中的集合进行恢复。有关mongorestore的更多信息,请查看文档here。
答案 3 :(得分:6)
使用mongorestore。 mongoimport适用于mongoexport的输出。 mongodump& mongorestore在json,csv等导入/导出工作时处理二进制数据文件。(人类可读格式)
答案 4 :(得分:3)
为了解决这个问题,我将转储文件夹 dbdump (包含bson文件)复制到mongodb的bin目录,并在命令提示符下执行以下命令:
1。
cd" MongoDB的bin文件夹路径"
(例如:cd C:\ Program Files \ MongoDB \ Server \ 3.2 \ bin)
2。
mongorestore.exe --dir ./directory name --db database-name
(例如:mongorestore --dir ./dbdump --db testdb)
转储文件夹中的所有bson文件都将导入到您的数据库中。
您可以通过执行以下命令来验证这一点:
cd" MongoDB的bin文件夹路径"
mongo.exe
show dbs;
答案 5 :(得分:1)
对于mongo 3及更高版本,请使用以下命令:
mongorestore --host=localhost --port=27017 --username=root --authenticationDatabase=admin --db=test dump_folder/
此后,Mongo将询问密码