Ошибка mongorestore: не знаю, что делать с файлом дампа [закрыто]

121

У меня установлена ​​база данных mongo по следующему пути c:\mongodb\bin. Я настроил переменную среды PATH в дополнительных настройках. У меня также работает mongod. Когда я запускаю следующую команду mongorestore dump по следующему пути c:\hw1-1\dump(он содержит файлы BSON), я получаю эту ошибку:

Не знаю, что делать с файлом дампа

Я сослался на эту ветку, чтобы проверить свой путь.

Прасанна Аарти
источник
Все ответы разные, потому что вся эта ошибка на самом деле означает, что некоторые из ваших флагов неверны. Какие флаги неверны, будет зависеть от того, что вы восстанавливаете и где это восстанавливаете. Используйте, mongodump --helpчтобы получить список текущих флагов в вашем экземпляре для отладки этой проблемы.
Лиам

Ответы:

279

в mongodb 3.0 или выше мы должны указать имя базы данных для восстановления

mongorestore -d [your_db_name] [your_dump_dir]
clevertension
источник
Я использую Windows версии 3.0.3, и указание имени базы данных сделало это за меня! Спасибо @clevertension.
Сотирис Зеианнис, 01
На 3.0.6 тоже отлично поработал.
шармаап
Это была проблема, которая возникла у меня после обновления mongodb-tools , спасибо!
emyller
2
Это сработало для меня с использованием аутентификации следующим образом:mongorestore -u k00k -p 1337p455w0rd -d mydb ./dump/mydb
k00k
Это старый ответ. В более новых версиях вы не можете указывать параметр --db( -d) во многих случаях. Вот как я его сейчас восстанавливаю: mongorestore --nsFrom=fromdbname.* --nsTo=todbname.* yourdumpfolder/Кроме того, когда вы использовали gzip, вам нужно указать --gzipпараметр, и если вы хотите переопределить материал, вы можете добавить --dropпараметр.
Джос
36

Вы, наверное, видели эту ошибку:

ОШИБКА: не знаю, что делать с файлом [дамп]

В данном случае это означает, что dumpв вашем текущем рабочем каталоге нет файла или каталога. Итак, сначала попробуйте это cd c:/hw1-1/(или какой бы там ни был правильный синтаксис в Windows, я не могу его проверить). В качестве альтернативы вы можете указать полный путь к dumpкаталогу:

mongorestore c:/hw1-1/dump
Mzzl
источник
спасибо c: / hw1-1 дамп mongorestore работает нормально ..
Прасанна Аарти,
9

Если вы используете mongoexportдля создания дампа, обязательно используйте его, mongoimportа не mongorestoreзагружайте.

punkrockpolly
источник
да, это была волшебная палочка для меня с тех пор, как я ее использовал mongoexport. tnx
SyCode
5

Это сообщение об ошибке «не знаю, что делать с файлом» также может возникнуть, если у вас есть файл BSON, не имеющий расширения .bson.

Обычно это не проблема, поскольку mongodumpгенерируются файлы с расширениями .bson, но в моем случае у меня был файл BSON, который не был сгенерирован mongodumpи имел другое расширение файла.

Хелми
источник
2
а как восстановить файл без расширения .bson? (.rdb в моем случае)
eagor
Я получаю эту ошибку бесполезной на файлы с на .bsonрасширении:don't know what to do with file "dump/mydb/users.bson", skipping...
Дэн Dăscălescu
2

Я работаю, version 3.2 windowsи у меня, mongorestoreпохоже, есть ошибка:

Если я укажу /db:database_nameили /d database_nameполучаю ошибку:

don't know what to do with subdirectory "dump\database_name", skipping...

Вместо этого, если я позволю ему работать со всем каталогом дампа, он, похоже, работает. Я использовал следующую команду:

mongorestore /host:remote_host dump

Моя текущая структура каталогов:

.
..
dump
dump\database_name
Антон Волков
источник
1

Я получил эту ошибку, когда у меня была коллекция, совпадающая с именем той, которую я пытался восстановить, присутствующей в Mongo, в итоге перешел в Mongo и удалил ее с помощью db.m101.drop ();

Донован Томсон
источник
0

Мне потребовалось некоторое время, чтобы выяснить варианты для mongorestore, после того как я продолжал получать эту ошибку в течение некоторого времени.

а) Нет запущенных экземпляров mongod.

б) mongorestore -v -host localhost:27017 --dbpath "Actual Path for the Mongo DB- set in config" "Location where the dump is"

Использование dbpath позволяет запускать эту команду без запущенной версии mongod. И это устранило мою ошибку.

Рошан Хандельвал
источник