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

Fen*_* Yu 31 mongodb

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

但是当我使用mongorestore时,它告诉我"不知道如何处理文件"db/collection.bson",跳过......".

没事做.我怎么能迁移我的dbs?

谢谢.

编辑:这是我的步骤.

在mongodb 2.0中使用mongodump

mongodump
tree dump
    db
    ??? collection-1.bson
    ??? collection-2.bson
    ??? collection-3.bson
    ??? ...
Run Code Online (Sandbox Code Playgroud)

将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
Run Code Online (Sandbox Code Playgroud)

小智 89

似乎必须在3.0中指定-d,如下所示:

mongorestore -d db db
Run Code Online (Sandbox Code Playgroud)

  • 太棒了,它有效。你怎么知道的 ?我以前从未指定过 ``-d`` 参数,mongorestore 可以自动创建数据库并从目录中恢复。我从没想过我必须指定“-d”。 (3认同)
  • 它适用于MongoDB shell版本:3.2.5 (2认同)

Art*_*nko 21

这个答案与你的问题没有直接关系,但是你会收到同样的错误输出,试图恢复mongo数据,转储--archive选项,自MongoDB 3.2版以来可用.要解决此问题,您需要--gzipmongorestore命令中指定参数.例:

mongorestore -d destination_db --gzip /path/to/source/db
Run Code Online (Sandbox Code Playgroud)


小智 6

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

mongorestore -d destination-db --gzip source-db
Run Code Online (Sandbox Code Playgroud)

在哪里:

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