Como importar o formato de arquivo .bson no mongodb

162

Eu exportei o banco de dados no servidor usando o mongodumpcomando e despejo é armazenado no .bsonarquivo. Eu preciso importar isso no meu servidor local usando o mongorestorecomando No entanto, não está funcionando. Qual é o mongorestorecomando correto e quais são os outros tools to restore db?

binalay
fonte

Respostas:

342

É muito simples importar um arquivo .bson :

mongorestore -d db_name -c collection_name /path/file.bson

No caso de apenas uma coleção, tente o seguinte:

mongorestore --drop -d db_name -c collection_name /path/file.bson

Para restaurar a pasta completa exportada por mongodump:

mongorestore -d db_name /path/
JERRY
fonte
4
Também é útil para o arquivo bson exportado via mongoexportse você estiver exportando apenas coleções únicas. mongoimportestava me dando erros de "caracteres inválidos". Obrigado!
divillysausages
4
Erro de sintaxe: ausente; antes da instrução @ (shell): 1: 16
151291
3
Talvez você possa acrescentar que esses comandos devem ser executados no prompt de comando e não no console do mongo. Isso iria ajudar novos usuários
Sonhos
2
Adicionando a esta resposta. Para aqueles que desejam restaurar remotamente um arquivo bson. Mongorestore -h [host] -u [user] -p [pass] -d [database] -c [collection] [bson file]
Jpepper
1
Graças ele trabalhou para minha pasta completa após extrackting de tar.gz
Braham Dev Yadav
63

mongorestoreé a ferramenta usada para importar arquivos bson que foram despejados por mongodump.

Dos documentos :

O mongorestore pega a saída do mongodump e a restaura.

Exemplo:

# On the server run dump, it will create 2 files per collection
# in ./dump directory:
# ./dump/my-collection.bson
# ./dump/my-collection.metadata.json
mongodump -h 127.0.0.1 -d my-db -c my-collection

# Locally, copy this structure and run restore.
# All collections from ./dump directory are picked up.
scp user@server:~/dump/**/* ./
mongorestore -h 127.0.0.1 -d my-db
Cameron
fonte
Preciso manter a dump/dbName/collectionName.bsonestrutura da pasta? Eu usei mongodump, mas agora quero importá-lo usando mongorestoreuma caixa remota do Linux.
Kevin Meredith
@ Kevin: Não tenho certeza, para ser honesto, mas eu diria que sim. Use um programa FTP para transferir os arquivos junto com a estrutura de pastas?
Cameron #
5
Consegui importar com êxito um mongo db usando um nome de pasta que não seja "dump":mongorestore --collection people --db accounts myDump/accounts/people.bson
Kevin Meredith
35
bsondump collection.bson > collection.json

e depois

mongoimport -d <dbname> -c <collection> < collection.json
Anton Shutik
fonte
7
Observe o aviso da documentação de importação e exportação do MongoDB :mongoimport and mongoexport do not reliably preserve all rich BSON data types because JSON can only represent a subset of the types supported by BSON. As a result, data exported or imported with these tools may lose some measure of fidelity.
LucasB
Sim. Isso atrapalha caracteres chineses / japoneses.
user2619824
10

Execute o seguinte na linha de comando e você deve estar no diretório bin do Mongo.

mongorestore -d db_name -c collection_name path/file.bson

puneet goyal
fonte
9

Você precisa executar este comando mongorestore via cmd e não no Mongo Shell ... Dê uma olhada no comando abaixo em ...

Execute este comando no cmd (não no shell Mongo)

>path\to\mongorestore.exe -d dbname -c collection_name path\to\same\collection.bson

Aqui path\to\mongorestore.exeestá o caminho da mongorestore.exepasta bin interna do mongodb. dbname é o nome do databse. collection_nameé o nome de collection.bson. path\to\same\collection.bsoné o caminho até essa coleção.

Agora, no mongo shell, você pode verificar se o banco de dados foi criado ou não (se não existir, o banco de dados com o mesmo nome será criado com a coleção).

Ansioso
fonte
4

Apenas para referência, se alguém ainda estiver lutando com a mongorestore.

Você precisa executar o monogorestore no terminal / prompt de comando e não no console do mongo.

$ mongorestore -d db_name /path_to_mongo_dump/

para mais detalhes, você pode visitar as documentações oficiais

https://docs.mongodb.com/manual/reference/program/mongorestore/

Lalit Sharma
fonte
2

Se o seu acesso remotamente você pode fazê-lo

para bson:

mongorestore --host m2.mongodb.net --port 27016 --ssl --username $user --password $password --authenticationDatabase $authdb -d test -c people "/home/${USER}/people.bson"

para bson compactado no formato .gz (gzip):

mongorestore --host m2.mongodb.net --port 27016 --ssl --username $user --password $password --authenticationDatabase $authdb -d test -c people --gzip --dir "/home/${USER}/people.bson.gz"
Em lei
fonte
1

mongorestore -d nome_bd / caminho /

certifique-se de executar esta consulta na pasta bin do mongoDb

C: \ Arquivos de programas \ MongoDB \ Server \ 4.2 \ bin -

em seguida, execute este comando acima.

Jitendra Chandwani
fonte
0

Eu usei isso:

mongorestore -d databasename -c file.bson fullpath/file.bson

1. copie o caminho e o nome do arquivo das propriedades (tente colocar todos os arquivos bson em uma pasta diferente), 2. use-o repetidamente, alterando apenas o nome do arquivo.

Rochan
fonte