Mongorestore不知道如何处理文件“db / collection.bson”,跳过

时间:2015-03-10 01:51:58

标签: mongodb

我想将我的mongodb从2.0迁移到3.0。所以我按照官方文档使用mongodump备份我的dbs并使用mongorestore将dbs恢复到mongodb 3.0。

但是当我使用mongorestore时,它告诉我&#34;不知道如何处理文件&#34; db / collection.bson&#34;,跳过......&#34;。< / p>

无所事事。我怎么能迁移我的dbs?

感谢。

编辑:这是我的步骤。

在mongodb 2.0中使用mongodump

mongodump
tree dump
    db
    ├── collection-1.bson
    ├── collection-2.bson
    ├── collection-3.bson
    ├── ...

将db目录复制到mongodb 3.0服务器。

在mongodb 3.0服务器上调用mongorestore db

但是我收到了这个错误:

mongorestore db
2015-03-10T09:36:26.237+0800    building a list of dbs and collections   to restore from db dir
2015-03-10T09:36:26.237+0800    don't know what to do with file "db/collection-1.bson", skipping...
2015-03-10T09:36:26.237+0800    don't know what to do with file "db/collection-2.bson", skipping...
2015-03-10T09:36:26.237+0800    don't know what to do with file "db/collection-3.bson", skipping...
...
2015-03-10T09:36:26.237+0800    done

9 个答案:

答案 0 :(得分:77)

似乎必须在3.0中指定-d:

mongorestore -d db db

答案 1 :(得分:17)

此答案与您的问题案例没有直接关系,但是您将收到尝试恢复mongo数据的相同错误输出,使用--archive选项转储,自MongoDB 3.2版本起可用。要解决此问题,您需要在mongorestore命令中指定--gzip参数。例如:

mongorestore -d destination_db --gzip /path/to/source/db

答案 2 :(得分:5)

如果您丢失了mongoDb,请尝试运行以下命令:

mongorestore -d destination-db --gzip source-db

位置:

  • destination-db是目标数据库的名称
  • source-db是源数据库的名称。

答案 3 :(得分:1)

使用mongorestore,这些转储文件的路径是必需参数;到目前为止,通过指示数据库,你已经做到了。

这也是一个好主意,因为Peter已经说过要指示一个数据库,使用/ d开关将转储文件恢复到集合中。

我在努力解决这个问题时没有意识到,一个mongod必须运行才能消耗修复体。如果你有超过1个mongod运行,你绝对应该用--port开关指示一个端口。对我有用的代码是:

mongod --dbpath config --port 27019 --logpath log.config --logappend

在另一个CLI中:

mongorestore --port 27019 /d config config

接着是

mongo localhost:27019/config

验证集合是否已正确填充。

答案 4 :(得分:0)

尝试这个。

mongorestore -db dataBaseName dataBasePath

答案 5 :(得分:0)

为了将数据导入到mongodb中,您需要在mongorestore函数中使用名称和路径指定-db配置,这同样适用于bson和json文件:

mongorestore --db <dbName> <dbPath>

检查是否使用mongo cli正确导入了数据

mongo
show databases
use <dbName>
show collections

答案 6 :(得分:0)

您要在mongorestore目录而不是dump目录上运行db/

mongorestore  dump/

答案 7 :(得分:0)

请遵循这些对我有用的指示

  • 首先转到command prompt
  • 运行cd C:\Program Files\MongoDB\Server\3.0\bin
  • 现在,假设您的数据位于一个名为trading的文件夹中,并且其中包含json个文件。
  • ,其路径可能是c:\Users\documents\trading
  • ({mongorestore -d dbName dbPath)。
  • 现在运行mongorestore -d trading c:\Users\documents\trading
  • 您的文件将被恢复。

答案 8 :(得分:0)

与您的情况没有直接关系,但由于这个原因,有人可能会偶然发现此帖子并出现类似错误

就我而言,数据是提供给我的,并已使用

mongodump --db ${DB_NAME} --gzip -o ${BACKUP_FILE_GZ}

要恢复,您必须使用以下格式:

mongorestore --gzip --db "${DB_NAME_RESTORE}" ${BACKUP_FILE_GZ}/${DB_NAME}