MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Importar documentos para o MongoDB de uma matriz de documentos JSON


Ao usar mongoimport , você pode usar o --jsonArray parâmetro para importar uma matriz de documentos JSON.

Exemplo


Suponha que temos o seguinte documento JSON chamado pets_array.json :
[
    {"_id":1.0,"name":"Wag","type":"Dog"},
    {"_id":2.0,"name":"Bark","type":"Dog"},
    {"_id":3.0,"name":"Meow","type":"Cat"}
]

Se tentarmos importar isso para o MongoDB sem usando o --jsonArray parâmetro, obtemos o seguinte erro:
2021-01-03T13:52:58.360+1000	no collection specified
2021-01-03T13:52:58.360+1000	using filename 'pets_array' as collection
2021-01-03T13:52:58.366+1000	connected to: mongodb://localhost/
2021-01-03T13:52:58.371+1000	Failed: cannot decode array into a D
2021-01-03T13:52:58.371+1000	0 document(s) imported successfully. 0 document(s) failed to import.

Basicamente, ele não pode decodificar a matriz em um documento.

Para corrigir isso, podemos simplesmente adicionar o --jsonArray parâmetro:
mongoimport --db=PetHotel --jsonArray --file=pets_array.json

Saída:
2021-01-03T13:58:13.407+1000	no collection specified
2021-01-03T13:58:13.408+1000	using filename 'pets_array' as collection
2021-01-03T13:58:13.421+1000	connected to: mongodb://localhost/
2021-01-03T13:58:13.450+1000	3 document(s) imported successfully. 0 document(s) failed to import.

Isso nos diz que todos os três documentos foram importados com sucesso.

Agora podemos dar uma olhada na coleção para verificar:
db.pets_array.find()

Resultado:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }

Como esperado, todos os três documentos estão na coleção recém-criada.

A coleção foi criada recentemente porque não especificamos uma coleção para a qual importar os documentos. Se tivéssemos, eles teriam sido importados para a coleção especificada.

Não tem mongoimport ?


mongoimport faz parte do pacote MongoDB Database Tools. As ferramentas de banco de dados do MongoDB são um conjunto de utilitários de linha de comando para trabalhar com o MongoDB.

Se você não tem certeza se possui o MongoDB Database Tools/mongoimport instalado, tente executar o seguinte comando no seu Terminal ou Prompt de Comando para verificar:
mongoimport --version

Se você o tiver, deverá ver as informações da versão, etc. Se não o tiver, poderá usar as instruções de instalação no site do MongoDB para instalá-lo em seu sistema.

Onde executar mongoimport Comandos?


Você precisa executar mongoimport comandos da linha de comando do seu sistema (por exemplo, um novo Terminal ou janela de prompt de comando).

Não os execute a partir do mongo Concha.