Usa la mongoimport utilidad para importar datos a una base de datos MongoDB.
MongoDB proporciona el mongoimport
utilidad que se puede utilizar para importar archivos JSON, CSV o TSV a una base de datos MongoDB.
mongoimport
se encuentra en el directorio bin (por ejemplo,
/mongodb/bin
o donde lo hayas instalado).
Para importar datos, abra una nueva ventana de Terminal/Símbolo del sistema e ingrese mongoimport
seguido de parámetros como el nombre de la base de datos, el nombre de la colección, el nombre del archivo fuente, etc.
Si encuentra que no puede ejecutar mongoimport , asegúrese de haber salido de mongo utilidad, o abrió una nueva ventana de Terminal/Símbolo del sistema antes de ejecutar mongoexport , ya que es una utilidad separada.
Importar archivo JSON
Aquí hay un ejemplo de cómo ejecutar mongoimport
para importar un archivo JSON.
Tal vez recuerde que anteriormente usamos mongoexport para exportar los artistas colección a un archivo JSON.
Más tarde eliminamos a los artistas colección en total.
Ahora, importaremos esa colección nuevamente a nuestra base de datos.
mongoimport --db music --file /data/dump/music/artists.json
Mensaje 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
Si no especifica un nombre de colección, se crea una colección basada en el nombre del archivo (menos cualquier extensión).
Ahora, volvamos a nuestro mongo ventana Terminal/Símbolo del sistema y recuperar la lista de colecciones en nuestra base de datos:
show collections
Resultado:
artists musicians producers
Ahora vamos a consultar nuestra colección 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 un nombre de colección
Puedes usar la --collection
argumento para proporcionar un nombre de la colección en la que deben ir los datos.
Importemos otro archivo, pero esta vez, especifique un nombre de colección:
mongoimport --db music --collection jazz --file /data/dump/music/miles_davis.json
Mensaje resultante:
2016-07-12T14:09:01.793+0700 connected to: localhost 2016-07-12T14:09:01.849+0700 imported 1 document
Ahora vuelve a mongo y consulta la lista de colecciones:
show collections
Mensaje resultante:
artists jazz musicians producers
Y finalmente, consulta el jazz colección:
db.jazz.find().pretty()
Mensaje resultante:
{ "_id" : ObjectId("578214f048ef8c6b3ffb0159"), "artistname" : "Miles Davis", "albums" : [ { "album" : "Kind of Blue", "year" : 1959, "genre" : "Jazz" }, { "album" : "Bitches Brew", "year" : 1970, "genre" : "Jazz" } ] }
Importar archivo CSV
Puede importar un archivo CSV usando --type csv
.
Si el archivo CSV tiene una fila de encabezado, use --headerline
decirle a
mongoimport
para usar la primera línea para determinar el nombre de los campos en el documento resultante.
Si el archivo CSV no tiene una fila de encabezado, use los --fields
parámetro para establecer los nombres de los campos.
Con fila de encabezado
Este es un ejemplo de cómo importar un documento con una fila de encabezado.
El contenido del archivo 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
Importar el archivo:
mongoimport --db music --collection catalog --type csv --headerline --file /data/dump/music/catalog.csv
Consultar la colección:
> 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" }
Sin fila de encabezado
Aquí hay otro archivo CSV, pero este no tiene una fila de encabezado:
Mutt Lange, 1948 John Petrucci, 1967 DJ Shadow, 1972 George Clinton, 1941
Ahora lo importaremos y especificaremos los nombres de campo a usar:
mongoimport --db music --collection producers --type csv --fields name,born --file /data/dump/music/producers.csv
Consultar la colección:
> 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 }
Verá que ObjectId El campo se ha creado y rellenado automáticamente para nosotros.
Además, ya teníamos un documento en esta colección antes de ejecutar la importación: { "_id" :1, "name" :"Bob Rock" } . Por lo tanto, puede ver que la importación simplemente ha agregado a la colección (en lugar de reemplazarla y todo su contenido).
Puede usar el mismo método para importar archivos TSV. Simplemente use --type tsv
.