我想将我的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
答案 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}