MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB - Impor Data

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 .


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $sin

  2. MongoDB :Kerangka kerja agregasi :Dapatkan dokumen bertanggal terakhir per ID pengelompokan

  3. Bagaimana cara kerja penyortiran di ekstensi PECL mongodb baru?

  4. Cara membuat Pengguna &menambahkan Peran di MongoDB

  5. java.lang.NoClassDefFoundError saat menggunakan driver MongoDB