一个db的Mongorestore给我带来了麻烦

Vin*_*nyG 37 mongodb

我是MongoDB的新手,我很难备份我的本地数据库并在我的服务器上恢复它.我在Mongo的网站上找到了链接:http://www.mongodb.org/display/DOCS/Import+Export+Tools,但我仍然遇到了恢复问题.

当我做备份时,我打电话

mongodump --db Gen
Run Code Online (Sandbox Code Playgroud)

然后我看到所有集合都在/bin/dump/Gen文件夹中转储

我从本地复制粘贴到调用同一文件夹中的服务器

mongorestore --db Gen --drop --dbpath dump/Gen
Run Code Online (Sandbox Code Playgroud)

但我得到以下内容: Error : root directory must be a dump of a single database when specifying a db name with --db

Vin*_*nyG 44

好的,我发现我做错了什么:

我在做

mongorestore --db Gen --drop --dbpath dump/Gen
Run Code Online (Sandbox Code Playgroud)

但没有--dbpath它就可以了!

mongorestore --db Gen --drop dump/Gen
Run Code Online (Sandbox Code Playgroud)

感谢大家!

  • 只是为了记录,` - drop`很重要:没有它,已经存在的`_id`不会被替换.这意味着不会添加对您要还原到的数据库中已存在的对象的更改. (6认同)

kri*_*ina 5

我认为当你试图移动它时,你的文件夹结构可能会搞砸了.例如,这对我有用:

$ ./mongodump --db Gen
$ ./mongorestore --db Gen --drop dump/Gen/
Run Code Online (Sandbox Code Playgroud)

你能尝试不移动转储目录,还是从/ bin/dump/Gen恢复?

您指定的目录中应包含.bson文件,例如,

$ ls /bin/dump/Gen
foo.bson  bar.bson  baz.bson
Run Code Online (Sandbox Code Playgroud)