我想使用 mongorestore 在 mongoDB 中加载数据/恢复转储数据。我试图指挥
mongorestore dump
但它给了我错误
Sat Sep 21 16:12:33.403 JavaScript execution failed: SyntaxError: Unexpected identifier
我们如何恢复或将数据放入 mongoDB?请给我步骤。
我想使用 mongorestore 在 mongoDB 中加载数据/恢复转储数据。我试图指挥
mongorestore dump
但它给了我错误
Sat Sep 21 16:12:33.403 JavaScript execution failed: SyntaxError: Unexpected identifier
我们如何恢复或将数据放入 mongoDB?请给我步骤。
mongodump: 转储所有记录:
mongodump --db databasename
要限制数据库转储中包含的数据量,您可以指定 --db 和 --collection 作为 mongodump 的选项。例如:
mongodump --collection myCollection --db test
此操作从当前工作目录的 dump/ 子目录中的数据库“test”创建名为 myCollection 的集合的转储。注意:如果备份数据文件夹中存在输出文件,mongodump 会覆盖它们。
mongorestore: 将所有数据恢复到原始数据库:
1) mongorestore --verbose \path\dump
或恢复到新数据库:
2) mongorestore --db databasename --verbose \path\dump\<dumpfolder>
注意:两者都需要 mongod 实例。
通过mongodump转储数据库
mongodump --host <database-host> -d <database-name> --port <database-port> --out directory
通过mongorestore恢复数据库
使用索引还原
mongorestore --host <database-host> -d <database-name> --port <database-port> foldername
没有索引恢复
mongorestore --noIndexRestore --host <database-host> -d <database-name> --port <database-port> foldername
从 CSV 导入单个集合 [第一列将被视为 Col/Key 名称]
mongoimport --db <database-name> --port <database-port> --collection <collection-name> --type csv --headerline --file /path/to/myfile.csv
从 JSON 导入单个集合
mongoimport --db <database-name> --port <database-port> --collection <collection-name> --file input.json
要恢复单个数据库:
备份testdb
数据库
$ mongodump --db testdb
testdb
将数据库恢复到一个名为testdb2
$ mongorestore --db testdb2 dump/testdb
要恢复所有数据库:
备份所有数据库
$ mongodump
恢复所有数据库
$ mongorestore dump
该目录应该命名为“dump”,并且该目录应该有一个包含 .bson 和 .json 文件的目录。该目录应命名为您的数据库名称。
例如:如果您的数据库名称是机构,那么第二个目录名称应该是机构。
完成此步骤后,转到终端中包含转储文件夹的目录,然后运行命令
mongorestore --drop。
请确保 mongo 已启动并运行。
这应该可以正常工作。
沿着这条路走。
C:\Program Files\MongoDB\Server\4.2\bin
在 bin 文件夹中运行 cmd 并粘贴以下命令
mongorestore --db <name-your-database-want-to-restore-as> <path-of-dumped-database>
例如:
mongorestore --db testDb D:\Documents\Dump\myDb
您可以使用以下命令将转储到本地计算机:
mongodump -h <host>:<port> -u <username> -p <password> -d ubertower-new -o /path/to/destination/directory
您可以使用此命令从本地计算机恢复到 Mongo DB
mongorestore -h <host>:<port> -u <username> -p <password> -d <DBNAME> /path/to/destination/directory/<DBNAME>
对于 mongoDB 数据库还原,请在此处使用此命令
mongorestore --db databasename --drop dump file path
您还可以将下载的 Atlas Backup .wt
WiredTiger 文件(解压缩或解压缩为restore
文件夹)恢复到本地 MongoDB。
首先,备份您的/data/db
路径。调用它/data_20200407/db
。其次,将.wt
Atlas Backup 还原文件夹中的所有文件复制粘贴到本地/data/db
路径中。重新启动 Ubuntu 或 MongoDB 服务器。启动你的 Mongo shell,你应该在那里有那些恢复的文件。
如果您可以删除现有的集合,那么下面的命令对我来说很好。
$ uri_complete="your_complete_uri"
$ restoreFileName="your_restore_filename"
$ mongorestore --uri=$uri_complete -v --gzip --archive=$restoreFileName --drop
$ uri_complete="your_complete_uri"
$ restoreFileName="your_restore_filename"
$ mongorestore --uri=$uri_complete -v --gzip --archive=$restoreFileName
如果您的数据库在默认端口上的 localhost 上运行而无需身份验证,则以下操作将起作用。
$ mongorestore -v --gzip --archive=restorefile.gzip --drop
更多细节 - mongorestore
我遇到了很多麻烦,所以我想出了自己的解决方案,我创建了这个脚本,只需在脚本中设置路径和数据库名称并运行它,它就可以解决问题
#!/bin/bash
FILES= #absolute or relative path to dump directory
DB=`db` #db name
for file in $FILES
do
name=$(basename $file)
collection="${name%.*}"
echo `mongoimport --db "$DB" --file "$name" --collection "$collection"`
done
mongodump --host test.mongodb.net --port 27017 --db --username --password --authenticationDatabase admin --ssl --out
mongorestore --db --verbose
备份 MongoDb 集合的过程。
恢复过程
在 Mongdb Server bin 文件夹中打开 CMD 提示符。
之后运行此命令 **mongorestore --db mydababse --verbose
D:\MongoDbBackup\mydababse\Dec28-21**(这是我存储备份集合的路径)。
有时 mongDb 还原程序需要文件夹权限才能还原。
对于 mongoDB 数据库还原,请在此处使用此命令。首先转到您的 mongodb 数据库位置,例如: cd Downloads/blank_db/v34000 之后输入 mongorestore -d v34000 ./