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

Impor Data CSV sebagai Array di MongoDB menggunakan mongoimport

Utilitas impor MongoDB – mongoimport – memperkenalkan parameter baru yang memungkinkan Anda mengimpor data CSV sebagai larik.

--useArrayIndexFields parameter menginterpretasikan bilangan asli dalam bidang sebagai indeks larik saat mengimpor file CSV atau TSV.

Contoh

Misalkan kita memiliki file CSV bernama tags.csv yang terlihat seperti ini:

tags.0,tags.1,tags.2,tags.3
html,css,sql,xml

Kita dapat mengimpornya menggunakan --useArrayIndexFields parameter, yang akan menyebabkan mongoimport untuk menafsirkan angka-angka di header kolom sebagai indeks array.

Contoh:

mongoimport --db=krankykranes --type=csv --headerline --useArrayIndexFields --file=tags.csv

Keluaran:

2021-01-03T20:55:44.284+1000	no collection specified
2021-01-03T20:55:44.284+1000	using filename 'tags' as collection
2021-01-03T20:55:44.297+1000	connected to: mongodb://localhost/
2021-01-03T20:55:44.330+1000	1 document(s) imported successfully. 0 document(s) failed to import.

Karena saya tidak menentukan nama koleksi, itu membuat koleksi yang disebut tags (berdasarkan nama file), lalu import dokumen saya.

Mari lompat ke cangkang mongo dan periksa koleksinya.

db.tags.find()

Hasil:

{ "_id" : ObjectId("5ff1a2b0300ed79d9836882f"), "tags" : [ "html", "css", "sql", "xml" ] }

Kita dapat melihat bahwa data CSV telah diimpor sebagai larik JSON.

Ini dia lagi tetapi dengan pemformatan yang lebih bagus, yang mungkin membuat array lebih mudah dilihat.

db.tags.find().pretty()

Hasil:

{
	"_id" : ObjectId("5ff1a2b0300ed79d9836882f"),
	"tags" : [
		"html",
		"css",
		"sql",
		"xml"
	]
}

Dikombinasikan dengan Data CSV Lainnya

File CSV pada contoh sebelumnya hanya terdiri dari data array. Tapi kita juga bisa memasukkan data lain ke dalam file.

Berikut ini contoh file CSV bernama articles.csv yang berisi data lain.

_id,title,body,tags.0,tags.1,tags.2,tags.3
1.0,Web,blah,html,css,sql,xml
2.0,Animals,blah 2,cats,dogs
3.0,Plants,blah 3,trees
4.0,Oceans,blah 4

Mari impor file itu:

mongoimport --db=krankykranes --type=csv --headerline --useArrayIndexFields --file=articles.csv

Keluaran:

2021-01-03T21:14:38.286+1000	no collection specified
2021-01-03T21:14:38.287+1000	using filename 'articles' as collection
2021-01-03T21:14:38.336+1000	connected to: mongodb://localhost/
2021-01-03T21:14:38.407+1000	4 document(s) imported successfully. 0 document(s) failed to import.

Sekarang mari kita beralih ke cangkang mongo dan memeriksa koleksinya.

db.articles.find()

Hasil:

{ "_id" : 1, "title" : "Web", "body" : "blah", "tags" : [ "html", "css", "sql", "xml" ] }
{ "_id" : 3, "title" : "Plants", "body" : "blah 3", "tags" : [ "trees" ] }
{ "_id" : 4, "title" : "Oceans", "body" : "blah 4" }
{ "_id" : 2, "title" : "Animals", "body" : "blah 2", "tags" : [ "cats", "dogs" ] }

Mari kita percantik sedikit.

db.articles.find().pretty()

Hasil:

{
	"_id" : 1,
	"title" : "Web",
	"body" : "blah",
	"tags" : [
		"html",
		"css",
		"sql",
		"xml"
	]
}
{
	"_id" : 3,
	"title" : "Plants",
	"body" : "blah 3",
	"tags" : [
		"trees"
	]
}
{ "_id" : 4, "title" : "Oceans", "body" : "blah 4" }
{
	"_id" : 2,
	"title" : "Animals",
	"body" : "blah 2",
	"tags" : [
		"cats",
		"dogs"
	]
}

Jadi kita dapat melihat bahwa dokumen telah dibuat sebagai dokumen JSON/BSON yang sempurna, dan array telah dibuat untuk data yang relevan.

Perhatikan bahwa tidak ada larik yang dibuat untuk dokumen 4. Ini karena tidak ada data larik yang disediakan dalam file CSV. Jadi, alih-alih membuat bidang dengan larik kosong, itu tidak membuat bidang atau larik.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana Membandingkan MongoDB dengan YCSB?

  2. Bagaimana cara melakukan pencarian $lookup bersarang di MongoDB?

  3. 2 Cara Menampilkan Indeks di MongoDB

  4. Bagaimana cara menjalankan perintah mongo melalui skrip Shell?

  5. Pembaruan luwak tanpa panggilan balik