Gunakan mongoimport utilitas untuk mengimpor data ke database MongoDB.
MongoDB menyediakan mongoimport
utilitas yang dapat digunakan untuk mengimpor file JSON, CSV, atau TSV ke dalam database MongoDB.
mongoimport
terletak di direktori bin (misalnya,
/mongodb/bin
atau di mana pun Anda menginstalnya).
Untuk mengimpor data, buka jendela Terminal/Command Prompt baru dan masukkan mongoimport
diikuti oleh parameter seperti nama database, nama koleksi, nama file sumber, dll.
Jika ternyata Anda tidak dapat menjalankan mongoimport , pastikan Anda telah keluar dari mongo utilitas, atau membuka jendela Terminal/Command Prompt baru sebelum menjalankan mongoexport , karena merupakan utilitas terpisah.
Impor File JSON
Berikut ini contoh menjalankan mongoimport
untuk mengimpor file JSON.
Anda mungkin ingat bahwa sebelumnya kami menggunakan mongoexport untuk mengekspor artis koleksi ke file JSON.
Kami kemudian menjatuhkan artis koleksi sama sekali.
Sekarang, kita akan mengimpor koleksi itu kembali ke database kita.
mongoimport --db music --file /data/dump/music/artists.json
Pesan yang dihasilkan:
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
Jika Anda tidak menentukan nama koleksi, koleksi akan dibuat berdasarkan nama file (dikurangi ekstensi apa pun).
Sekarang, mari beralih kembali ke mongo Jendela Terminal/Command Prompt dan ambil daftar koleksi di database kami:
show collections
Hasil:
artists musicians producers
Sekarang kami akan menanyakan koleksi kami yang telah dihidupkan kembali.
db.artists.find()
Hasil:
{ "_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" } ] }
Tentukan Nama Koleksi
Anda dapat menggunakan --collection
argumen untuk memberikan nama koleksi tempat data harus masuk.
Mari impor file lain, tetapi kali ini, tentukan nama koleksi:
mongoimport --db music --collection jazz --file /data/dump/music/miles_davis.json
Pesan yang dihasilkan:
2016-07-12T14:09:01.793+0700 connected to: localhost 2016-07-12T14:09:01.849+0700 imported 1 document
Sekarang beralih kembali ke mongo dan cek daftar koleksinya:
show collections
Pesan yang dihasilkan:
artists jazz musicians producers
Dan terakhir, kueri jazz koleksi:
db.jazz.find().pretty()
Pesan yang dihasilkan:
{ "_id" : ObjectId("578214f048ef8c6b3ffb0159"), "artistname" : "Miles Davis", "albums" : [ { "album" : "Kind of Blue", "year" : 1959, "genre" : "Jazz" }, { "album" : "Bitches Brew", "year" : 1970, "genre" : "Jazz" } ] }
Impor File CSV
Anda dapat mengimpor file CSV dengan menggunakan --type csv
.
Jika file CSV memiliki baris header, gunakan --headerline
untuk memberi tahu
mongoimport
untuk menggunakan baris pertama untuk menentukan nama bidang dalam dokumen yang dihasilkan.
Jika file CSV tidak memiliki baris header, gunakan --fields
parameter untuk mengatur nama bidang.
Dengan Baris Tajuk
Berikut adalah contoh mengimpor dokumen dengan baris header.
Isi file 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
Impor file:
mongoimport --db music --collection catalog --type csv --headerline --file /data/dump/music/catalog.csv
Kueri koleksinya:
> 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" }
Tanpa Baris Header
Ini file CSV lainnya, tetapi yang ini tidak memiliki baris header:
Mutt Lange, 1948 John Petrucci, 1967 DJ Shadow, 1972 George Clinton, 1941
Sekarang kita akan mengimpornya dan menentukan nama bidang yang akan digunakan:
mongoimport --db music --collection producers --type csv --fields name,born --file /data/dump/music/producers.csv
Kueri koleksinya:
> 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 }
Anda akan melihat bahwa ObjectId bidang telah dibuat dan diisi secara otomatis untuk kami.
Selain itu, kami telah memiliki satu dokumen dalam koleksi ini sebelum menjalankan impor: { "_id" :1, "name" :"Bob Rock" } . Oleh karena itu, Anda dapat melihat bahwa impor telah menambahkan ke koleksi (bukan menggantinya dan semua isinya).
Anda dapat menggunakan metode yang sama untuk mengimpor file TSV. Cukup gunakan --type tsv
.