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

Mongodb 一个给我带来麻烦的db的Mongorestore,mongodb,Mongodb,我是MongoDB的新手,我很难备份本地数据库并将其恢复到服务器上。我在Mongo的网站上找到了这个链接:但我在恢复方面仍然有问题 当我做备份时,我会打电话 mongodump --db Gen 然后我看到所有集合都转储在/bin/dump/Gen文件夹中 我将粘贴从本地复制到与调用相同的文件夹中的服务器 mongorestore --db Gen --drop --dbpath dump/Gen 但我得到了以下信息: 错误:使用--db指定db名称时,根目录必须是单个数据库的转储。我认为,

我是MongoDB的新手,我很难备份本地数据库并将其恢复到服务器上。我在Mongo的网站上找到了这个链接:但我在恢复方面仍然有问题

当我做备份时,我会打电话

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

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

mongorestore --db Gen --drop --dbpath dump/Gen
但我得到了以下信息:
错误:使用--db

指定db名称时,根目录必须是单个数据库的转储。我认为,当您尝试移动它时,您的文件夹结构可能会出错。例如,这对我很有用:

$ ./mongodump --db Gen
$ ./mongorestore --db Gen --drop dump/Gen/
是否可以尝试不移动转储目录,并从/bin/dump/Gen还原

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

$ ls /bin/dump/Gen
foo.bson  bar.bson  baz.bson

好的,我会找出我做错了什么:

我在做什么

mongorestore --db Gen --drop --dbpath dump/Gen
但是如果没有--dbpath,它就可以正常工作

mongorestore --db Gen --drop dump/Gen

谢谢大家

对于不想被错误“在使用--db指定db名称时,根目录必须是单个数据库的转储”所困扰的人,还有一个额外的注意事项

指定--db而不指定--collection(还原整个数据库)时: -给定路径必须是目录路径 -该目录不得包含.bson或.json以外的任何其他文件。我花了一段时间才意识到隐藏的.svn文件夹(如果使用svn)会弄乱脚本。示例:

./mongorestore -d db -c mycollection dump/db
将引发以下错误

ERROR: ERROR: root directory must be a dump of a single collection
ERROR:        when specifying a collection name with --collection

您可以删除-c选项来纠正此错误。因为dump/db指定了db,而不是collection。

这就是我的工作(
mydb
是我数据库的名称):

在我的
mongodump
之后:

mongodump -d mydb -o mydbbackup

它必须是转储目录中的任何其他目录。因此,首先删除目录,然后重新运行命令
mongordore-d db dump/db

如果您将目录更改为dump/Gen并使用
--dbpath再次运行它会怎么样。
您的意思是mongodump--db Gen--dbpath dump/Gen?不工作…嗨,克里斯蒂娜,如果我在我的本地计算机上这样做,它工作正常,数据库被恢复,我没有得到任何错误。我移动的目录中有.bson文件。我无法进行恢复,因为我的dbs仅在本地可见,无法找到如何“打开”我的服务器(win2008),以便从外部看到它,我想我将就此开始另一个问题。好的。此错误之前的if语句字面上是“if(is_directory(p)),其中p是dump/Gen中的文件/目录。您确定其中没有子目录吗?值得注意的是,为什么,
--dbpath
设置实时数据库的路径,而不是转储的数据。您可以这样做以绕过连接到数据库。仅对于记录而言,
--drop
非常重要:没有它,就不会替换现有的
\u id
。这意味着不会添加对要还原到的数据库中已经存在的对象的更改。是否确实删除了“Gen”mongodb?在我的例子中,在恢复时,我可以看到以前在转储后添加的记录。你能在这里解决我的问题吗。。同上。奇怪的是,当您使用--dbpath./dump显式声明路径时,它不起作用。也有这个问题,但在我的例子中,Mongo在这个文件夹中创建Mongo.lock文件,而我之前尝试恢复时,我已经删除了该文件,一切都很顺利。这并不能解决任何问题。错误是关于-d选项,而不是-c选项
mongodump -d mydb -o mydbbackup