erro mongorestore: não sei o que fazer com o arquivo de despejo [fechado]

121

Eu tenho o mongo DB instalado no seguinte caminho c:\mongodb\bin. Eu configurei minha variável de ambiente PATH em configurações avançadas. Também tenho o mongod em execução. Quando executo o seguinte comando mongorestore dump a partir do seguinte caminho c:\hw1-1\dump(que contém os arquivos BSON), recebo este erro:

Não sei o que fazer com o arquivo de despejo

Eu me referi a este tópico para verificar meu caminho.

Prasanna Aarthi
fonte
Todas as respostas são diferentes porque todo esse erro realmente significa que algumas de suas sinalizações estão incorretas. Quais sinalizadores estão incorretos dependerá do que você está restaurando e de onde está restaurando. Use mongodump --helppara obter uma lista dos sinalizadores atuais em sua instância para depurar esse problema.
Liam

Respostas:

278

no mongodb 3.0 ou superior, devemos especificar o nome do banco de dados para restaurar

mongorestore -d [your_db_name] [your_dump_dir]
tensão de inteligência
fonte
Estou usando o Windows versão 3.0.3 e especificar o nome do banco de dados fez isso por mim! Obrigado @clevertension.
Sotiris Zegiannis
Funcionou perfeitamente no 3.0.6 também.
sharmaap
Este foi o problema que tive após a atualização mongodb-tools, obrigado!
emyller
2
Isso funcionou para mim usando autenticação como esta:mongorestore -u k00k -p 1337p455w0rd -d mydb ./dump/mydb
k00k
Esta é uma resposta antiga. Em versões mais recentes, você não pode especificar o parâmetro --db( -d) em muitos casos. É assim que eu o restauro atualmente: mongorestore --nsFrom=fromdbname.* --nsTo=todbname.* yourdumpfolder/Além disso, quando você usou o gzip, você precisa fornecer o --gzipparâmetro e se quiser sobrescrever alguma coisa, você pode adicionar o --dropparâmetro.
Jos
36

Você provavelmente viu este erro:

ERRO: não sei o que fazer com o arquivo [despejar]

O que significa, neste caso, que não há nenhum arquivo ou diretório chamado dumpem seu diretório de trabalho atual. Portanto, tente isto primeiro cd c:/hw1-1/(ou qualquer que seja a sintaxe correta no Windows, não posso testá-lo.) Como alternativa, você pode especificar o caminho completo para o dumpdiretório:

mongorestore c:/hw1-1/dump
Mzzl
fonte
obrigado c: / hw1-1 mongorestore dump funciona bem ..
Prasanna Aarthi
9

Se você estiver usando mongoexportpara criar o despejo, certifique-se de usarmongoimport vez de mongorestorecarregá-lo.

punkrockpolly
fonte
sim, esta foi a varinha mágica para mim desde que usei mongoexport. tnx
SyCode
5

Essa mensagem de erro "não sei o que fazer com o arquivo" também pode ocorrer se você tiver um arquivo BSON que não tenha uma extensão de arquivo .bson.

Geralmente isso não é um problema, pois mongodumpgera os arquivos com extensões .bson, mas no meu caso eu tinha um arquivo BSON que não foi gerado mongodumpe tinha uma extensão de arquivo diferente.

Helmy
fonte
2
e como você restaura arquivos sem extensão .bson? (.rdb no meu caso)
eagor
Recebo este erro inútil em arquivos com a .bsonextensão:don't know what to do with file "dump/mydb/users.bson", skipping...
Dan Dascalescu
2

Estou ligado version 3.2 windowse mongorestoreparece que há um bug:

Se eu especificar /db:database_nameou /d database_nameobtiver o erro:

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

Em vez disso, se eu permitir que ele seja executado em todo o diretório de despejo, ele parece funcionar. O comando que usei é:

mongorestore /host:remote_host dump

Minha estrutura de diretório atual é:

.
..
dump
dump\database_name
Anton Wolkov
fonte
1

Recebi este erro quando tinha uma coleção com o nome daquele que estava tentando restaurar presente no Mongo e acabou indo para o Mongo e excluindo-o usando db.m101.drop ();

Donovan Thomson
fonte
0

Levei algum tempo para descobrir as opções para mongorestore, depois de continuar recebendo esse erro por algum tempo.

a) Nenhuma instância em execução de mongod.

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

Usando dbpath, permite executar este comando sem qualquer versão do mongod em execução. E isso resolveu meu erro.

Roshan Khandelwal
fonte