Use o mongoimport utilitário para importar dados para um banco de dados MongoDB.
O MongoDB fornece o
mongoimport
utilitário que pode ser usado para importar arquivos JSON, CSV ou TSV para um banco de dados MongoDB. mongoimport
está localizado no diretório bin (por exemplo,
/mongodb/bin
ou onde quer que você o tenha instalado). Para importar dados, abra uma nova janela Terminal/Prompt de Comando e digite
mongoimport
seguido por parâmetros como nome do banco de dados, nome da coleção, nome do arquivo de origem, etc. Se você achar que não pode executar mongoimport , certifique-se de ter saído do mongo utilitário, ou abriu uma nova janela Terminal/Prompt de Comando antes de executar mongoexport , pois é um utilitário separado.
Importar arquivo JSON
Aqui está um exemplo de execução de
mongoimport
para importar um arquivo JSON. Você deve se lembrar que anteriormente usamos mongoexport para exportar os artistas coleção para um arquivo JSON.
Mais tarde, descartamos os artistas coleção por completo.
Agora, importaremos essa coleção de volta ao nosso banco de dados.
mongoimport --db music --file /data/dump/music/artists.json
Mensagem resultante:
2016-07-12T13:34:04.904+0700 no collection specified 2016-07-12T13:34:04.905+0700 using filename 'artists' as collection 2016-07-12T13:34:04.911+0700 connected to: localhost 2016-07-12T13:34:04.968+0700 imported 13 documents
Se você não especificar um nome de coleção, uma coleção será criada com base no nome do arquivo (menos qualquer extensão).
Agora, vamos voltar ao nosso mongo Terminal/Prompt de Comando e recupere a lista de coleções em nosso banco de dados:
show collections
Resultado:
artists musicians producers
Agora vamos consultar nossa coleção revivida.
db.artists.find()
Resultado:
{ "_id" : 1, "artistname" : "AC/DC" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" } { "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : ObjectId("5781f85d48ef8c6b3ffb0150"), "artistname" : "Deep Purple", "albums" : [ { "album" : "Machine Head", "year" : 1972, "genre" : "Rock" }, { "album" : "Stormbringer", "year" : 1974, "genre" : "Rock" } ] } { "_id" : ObjectId("578214f048ef8c6b3ffb0159"), "artistname" : "Miles Davis", "albums" : [ { "album" : "Kind of Blue", "year" : 1959, "genre" : "Jazz" }, { "album" : "Bitches Brew", "year" : 1970, "genre" : "Jazz" } ] } { "_id" : ObjectId("578217c248ef8c6b3ffb015a"), "artistname" : "Robben Ford", "albums" : [ { "album" : "Bringing it Back Home", "year" : 2013, "genre" : "Blues" }, { "album" : "Talk to Your Daughter", "year" : 1988, "genre" : "Blues" } ] } { "_id" : 2, "artistname" : "Prince", "address" : { "street" : "Audubon Road", "city" : "Chanhassen", "state" : "Minnesota", "country" : "United States" } } { "_id" : 4, "artistname" : "Rush" } { "_id" : 3, "artistname" : "Moby", "albums" : [ { "album" : "Play", "year" : 1999, "genre" : "Electronica" }, { "album" : "Long Ambients 1: Calm. Sleep.", "year" : 2016, "genre" : "Ambient" } ] } { "_id" : ObjectId("578217c248ef8c6b3ffb015b"), "artistname" : "Snoop Dogg", "albums" : [ { "album" : "Tha Doggfather", "year" : 1996, "genre" : "Rap" }, { "album" : "Reincarnated", "year" : 2013, "genre" : "Reggae" } ] }
Especifique um nome de coleção
Você pode usar o
--collection
argumento para fornecer um nome da coleção na qual os dados devem entrar. Vamos importar outro arquivo, mas desta vez, especifique um nome de coleção:
mongoimport --db music --collection jazz --file /data/dump/music/miles_davis.json
Mensagem resultante:
2016-07-12T14:09:01.793+0700 connected to: localhost 2016-07-12T14:09:01.849+0700 imported 1 document
Agora volte para mongo e confira a lista de coleções:
show collections
Mensagem resultante:
artists jazz musicians producers
E, finalmente, consulte o jazz coleção:
db.jazz.find().pretty()
Mensagem resultante:
{ "_id" : ObjectId("578214f048ef8c6b3ffb0159"), "artistname" : "Miles Davis", "albums" : [ { "album" : "Kind of Blue", "year" : 1959, "genre" : "Jazz" }, { "album" : "Bitches Brew", "year" : 1970, "genre" : "Jazz" } ] }
Importar arquivo CSV
Você pode importar um arquivo CSV usando
--type csv
. Se o arquivo CSV tiver uma linha de cabeçalho, use
--headerline
dizer ao
mongoimport
para usar a primeira linha para determinar o nome dos campos no documento resultante. Se o arquivo CSV não tiver uma linha de cabeçalho, use
--fields
parâmetro para definir os nomes dos campos. Com linha de cabeçalho
Aqui está um exemplo de importação de um documento com uma linha de cabeçalho.
O conteúdo do arquivo CSV:
_id,albumname,artistname 1,Killers,"Iron Maiden" 2,Powerslave,"Iron Maiden" 12,"Somewhere in Time","Iron Maiden" 3,"Surfing with the Alien","Joe Satriani" 10,"Flying in a Blue Dream","Joe Satriani" 11,"Black Swans and Wormhole Wizards","Joe Satriani" 6,"Out of the Loop","Mr Percival" 7,"Suck on This",Primus 8,"Pork Soda",Primus 9,"Sailing the Seas of Cheese",Primus
Importe o arquivo:
mongoimport --db music --collection catalog --type csv --headerline --file /data/dump/music/catalog.csv
Consulte a coleção:
> db.catalog.find() { "_id" : 2, "albumname" : "Powerslave", "artistname" : "Iron Maiden" } { "_id" : 1, "albumname" : "Killers", "artistname" : "Iron Maiden" } { "_id" : 3, "albumname" : "Surfing with the Alien", "artistname" : "Joe Satriani" } { "_id" : 12, "albumname" : "Somewhere in Time", "artistname" : "Iron Maiden" } { "_id" : 10, "albumname" : "Flying in a Blue Dream", "artistname" : "Joe Satriani" } { "_id" : 6, "albumname" : "Out of the Loop", "artistname" : "Mr Percival" } { "_id" : 7, "albumname" : "Suck on This", "artistname" : "Primus" } { "_id" : 8, "albumname" : "Pork Soda", "artistname" : "Primus" } { "_id" : 11, "albumname" : "Black Swans and Wormhole Wizards", "artistname" : "Joe Satriani" } { "_id" : 9, "albumname" : "Sailing the Seas of Cheese", "artistname" : "Primus" }
Sem linha de cabeçalho
Aqui está outro arquivo CSV, mas este não tem uma linha de cabeçalho:
Mutt Lange, 1948 John Petrucci, 1967 DJ Shadow, 1972 George Clinton, 1941
Agora vamos importá-lo e especificar os nomes dos campos a serem usados:
mongoimport --db music --collection producers --type csv --fields name,born --file /data/dump/music/producers.csv
Consulte a coleção:
> db.producers.find() { "_id" : 1, "name" : "Bob Rock" } { "_id" : ObjectId("5784a3a5dfad478c015f6b72"), "name" : "John Petrucci", "born" : 1967 } { "_id" : ObjectId("5784a3a5dfad478c015f6b73"), "name" : "Mutt Lange", "born" : 1948 } { "_id" : ObjectId("5784a3a5dfad478c015f6b74"), "name" : "George Clinton", "born" : 1941 } { "_id" : ObjectId("5784a3a5dfad478c015f6b75"), "name" : "DJ Shadow", "born" : 1972 }
Você verá que o ObjectId campo foi criado e preenchido automaticamente para nós.
Além disso, já tínhamos um documento nesta coleção antes de executarmos a importação: { "_id" :1, "name" :"Bob Rock" } . Portanto, você pode ver que a importação simplesmente adicionou à coleção (em vez de substituí-la e todo o seu conteúdo).
Você pode usar o mesmo método para importar arquivos TSV. Basta usar
--type tsv
.