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?

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/

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

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

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


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).



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"

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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.