如何将转储恢复到正在运行的mongodb中

时间:2013-09-21 10:43:53

标签: mongodb

我想使用mongorestore在mongoDB中加载数据/恢复转储数据。我正在尝试命令

mongorestore dump

但它给了我错误

Sat Sep 21 16:12:33.403 JavaScript execution failed: SyntaxError: Unexpected identifier

我们如何将数据恢复或放入mongoDB?请给我一些步骤。

13 个答案:

答案 0 :(得分:30)

<强> 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实例。

答案 1 :(得分:12)

通过 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导入单个集合[第一列将被视为列/密钥名称]

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

答案 2 :(得分:11)

该目录应命名为“dump”,该目录应包含一个包含.bson和.json文件的目录。该目录应命名为您的数据库名称。

例如:如果您的数据库名称是机构,那么第二个目录名称应该是机构。

完成此步骤后,转到终端中包含dump文件夹的目录,然后运行命令

mongorestore --drop。

确保mongo正常运行。

这应该可以正常工作。

答案 3 :(得分:2)

  1. 启动mongod
  2. 导航到您在OS shell中提取“enron.zip”的文件夹(如果是Windows,则为cmd)
  3. 然后输入“&gt; mongorestore -d your_db_name dump / enron”

答案 4 :(得分:2)

对于mongoDB数据库还原,请在此处使用此命令

mongorestore --db databasename --drop dump file path

答案 5 :(得分:1)

您可以使用以下命令将转储到本地计算机:

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>

答案 6 :(得分:1)

要还原单个数据库:

1. Backup the 'users' database
$ mongodump --db users

2. Restore the 'users' database to a new database called 'users2'
$ mongorestore --db users2 dump/users

答案 7 :(得分:1)

您还可以将下载的Atlas Backup .wt WiredTiger文件(作为restore文件夹解压缩或解压缩)恢复到本地MongoDB。

首先,备份您的/data/db路径。称为/data_20200407/db。其次,将Atlas Backup还原文件夹中的所有.wt文件复制粘贴到本地/data/db路径中。重新启动您的Ubuntu或MongoDB服务器。启动您的Mongo Shell,您应该在那里有那些还原的文件。

答案 8 :(得分:0)

我遇到了很多麻烦,所以我想出了自己的解决方案,创建了这个脚本,只需在脚本和db name中设置路径并运行它,就可以解决问题

#!/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

答案 9 :(得分:0)

  

mongodump --host test.mongodb.net --port 27017 --db --username --password --authentication数据库管理员--ssl --out

     

mongorestore --db --verbose

答案 10 :(得分:0)

遵循此路径。

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

答案 11 :(得分:0)

如果你可以删除现有的集合,那么下面的命令对我来说很好。

  • 可以删除现有的集合
$ 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

如果您的数据库在没有身份验证的情况下在本地主机上的默认端口上运行,那么以下将起作用。

$ mongorestore -v --gzip --archive=restorefile.gzip --drop

更多详情 - mongorestore

答案 12 :(得分:-1)

对于mongoDB数据库还原,请在此处使用此命令。 首先转到您的mongodb数据库位置,例如 例如 : cd下载/ blank_db / v34000 之后输入mongorestore -d v34000 ./