Mongorestore don't know what to do with file "db/collection.bson", skipping
MongodbMongodb Problem Overview
I want to migrate my mongodb from 2.0 to 3.0. So I followed the official doc to use mongodump to backup my dbs and use mongorestore to restore the dbs to mongodb 3.0.
But when I use mongorestore, it tells me "don't know what to do with file "db/collection.bson", skipping...".
Nothing to do. How could I migrate my dbs?
Thanks.
EDIT: Here is my steps.
Use mongodump in mongodb 2.0
mongodump
tree dump
db
├── collection-1.bson
├── collection-2.bson
├── collection-3.bson
├── ...
Copy db directory to mongodb 3.0 server.
On the mongodb 3.0 server calls mongorestore db
But I get this error:
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
Mongodb Solutions
Solution 1 - Mongodb
It seems one must also specify -d
mongorestore -d db db
Solution 2 - Mongodb
This answer isn't directly related to your issue case, but the same error output you will receive trying to restore mongo data, dumped with --archive
option, available since MongoDB 3.2 version. To resolve this you need to specify --gzip
parameter in your mongorestore
command. Example:
mongorestore -d destination_db --gzip /path/to/source/db
Solution 3 - Mongodb
If you have lost your mongoDb just try running this command:
mongorestore -d destination-db --gzip source-db
Where:
destination-db
is the name of the destination databasesource-db
is the name of the source database.
Solution 4 - Mongodb
Try this one.
mongorestore -db dataBaseName dataBasePath
Solution 5 - Mongodb
In order to import data to your mongodb ,You need to specify --db configuration in mongorestore function with name and path, this works for me for bson and json files as well:
mongorestore --db <dbName> <dbPath>
check the data was imported properly using mongo cli
mongo
show databases
use <dbName>
show collections
Solution 6 - Mongodb
With mongorestore, the path of those dump files is a required parameter; you've got that right so far, by indicating db.
It is also a good idea as Peter has said to indicate a database to restore the dump files into collections with a /d switch.
Something I didn't realize while struggling with this is that a mongod must be running to consume the restoration. If you have more than 1 mongod running, you should definitely indicate a port with the --port switch. The code that worked for me was:
mongod --dbpath config --port 27019 --logpath log.config --logappend
And in another CLI:
mongorestore --port 27019 /d config config
followed by
mongo localhost:27019/config
to verify that the collections were filled properly.
Solution 7 - Mongodb
Please Follow these intstructions it worked for me
- First go to
command prompt
. - run
cd C:\Program Files\MongoDB\Server\3.0\bin
. - now ,For suppose your data is in a folder called
trading
and it containsjson
files . - and the path for that might be
c:\Users\documents\trading
. - (
mongorestore -d dbName dbPath
). - now run
mongorestore -d trading c:\Users\documents\trading
. - your files will be restored.
Solution 8 - Mongodb
You want to run mongorestore
on the dump
directory, not the db/
directory.
mongorestore dump/
Solution 9 - Mongodb
Not directly related to your situation but someone could stumble upon this post with similar error for this reason
In my case, the data was provided to me and had been dumped using
mongodump --db ${DB_NAME} --gzip -o ${BACKUP_FILE_GZ}
To restore, you must use following format:
mongorestore --gzip --db "${DB_NAME_RESTORE}" ${BACKUP_FILE_GZ}/${DB_NAME}