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

Ekspor Koleksi MongoDB ke File CSV

Alat Database MongoDB menyertakan utilitas yang disebut mongoexport yang memungkinkan Anda mengekspor data MongoDB ke file CSV atau JSON.

Artikel ini menunjukkan cara menggunakan mongoexport untuk mengekspor koleksi MongoDB ke file CSV.

Sintaks

Sintaks untuk mongoexport seperti ini:

mongoexport --collection=<coll> <options> <connection-string>

Anda perlu menjalankan mongoexport perintah dari baris perintah sistem Anda (mis. Terminal baru atau jendela Prompt Perintah).

Jangan jalankan mongoexport perintah dari mongo kerang.

Ekspor Koleksi

Contoh kode berikut mengekspor koleksi dari MongoDB:

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --out=data/pets.csv

Ini mengekspor koleksi yang disebut pets dari PetHotel database ke file bernama pets.csv di data/ map.

Jika folder tidak ada, itu dibuat. Sama dengan filenya. Omong-omong, ini mengasumsikan bahwa tidak ada masalah izin dengan menulis file ke lokasi yang ditentukan.

Dalam contoh ini saya tidak menentukan host, port, otentikasi, dll, sehingga mengekspor koleksi dari instance MongoDB yang berjalan pada nomor port localhost default 27017 .

Di bawah ini adalah penjelasan dari parameter yang kami berikan di sini.

Parameter Deskripsi
--db
atau
-d
Menentukan database yang berisi koleksi yang ingin kita ekspor. Dalam hal ini, databasenya disebut PetHotel .
Parameter ini sebagai alternatif dapat diteruskan menggunakan -d (bukan --db ).
--collection
atau
-c
Menentukan koleksi yang ingin kita ekspor. Dalam hal ini, koleksinya disebut pets .
Parameter ini dapat diteruskan sebagai -c (bukan --collection ).
--type Menentukan jenis file yang diekspor. Dalam hal ini kita tentukan csv untuk mengekspornya ke file CSV.
--fields Menentukan bidang yang ingin kita ekspor. Kami memiliki opsi untuk mengekspor semua bidang dalam koleksi, atau hanya beberapa. Anda perlu mendaftar masing-masing di sini, dipisahkan dengan koma. Saat mengekspor ke CSV, menentukan nama bidang adalah persyaratan. Anda dapat melakukannya melalui --fields parameter atau --fieldFile parameter (lebih lanjut tentang itu nanti).
--out Menentukan nama file yang diekspor dan lokasinya. Jika Anda tidak menentukan nama file, mongoexport menulis data ke output standar (stdout ).

Periksa File yang Diekspor

Mari kita verifikasi bahwa operasi ekspor bekerja seperti yang diharapkan.

Pertama, mari kita periksa koleksi aslinya.

use PetHotel
db.pets.find()

Hasil:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
{ "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }

Jadi kita bisa melihat ada 7 pet, semuanya dengan field yang sama yang kita tentukan dalam operasi ekspor kita.

Sekarang mari kita buka file yang diekspor pets.csv untuk melihat apa yang ada di dalamnya:

_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
3,Meow,Cat,7
4,Scratch,Cat,8
5,Bruce,Bat,3
6,Fetch,Dog,17
7,Jake,Dog,30

Oke, jadi semua data ada di file yang diekspor seperti yang diharapkan.

Hapus Tajuk Kolom

Anda akan melihat bahwa file yang diekspor pada contoh sebelumnya menyertakan header kolom.

Anda juga memiliki opsi untuk mengekspor file tanpa header kolom. Untuk melakukannya, gunakan --noHeaderLine parameter.

Contoh:

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --noHeaderLine --out=data/pets.csv

Sekarang ketika saya membuka file yang diekspor, tidak ada header kolom:

1,Wag,Dog,20
2,Bark,Dog,10
3,Meow,Cat,7
4,Scratch,Cat,8
5,Bruce,Bat,3
6,Fetch,Dog,17
7,Jake,Dog,30

Gunakan File untuk Nama Bidang

Anda dapat mengganti --field parameter dengan --fieldFile parameter untuk menentukan nama file yang berisi nama bidang yang ingin Anda ekspor.

mongoexport --db=PetHotel --collection=pets --type=csv --fieldFile=data/pets_fields.txt --out=data/pets.csv

File yang berisi bidang harus memiliki bidang yang terdaftar, satu per baris.

Berikut pets_fields.txt file tampak seperti contoh ini:

_id
name
type
weight

Ini mengakibatkan isi file yang diekspor terlihat seperti ini:

_id,name,type,weight
1,Wag,Dog,20
2,Bark,Dog,10
3,Meow,Cat,7
4,Scratch,Cat,8
5,Bruce,Bat,3
6,Fetch,Dog,17
7,Jake,Dog,30

Mengubah Urutan Kolom

Anda dapat mengganti urutan bidang yang akan diekspor. Mereka tidak harus berada dalam urutan yang sama dengan dokumen yang mendasarinya.

Misalnya, kode ini:

mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,weight,type,name --out=data/pets.csv

Hasil dalam file CSV berikut:

_id,weight,type,name
1,20,Dog,Wag
2,10,Dog,Bark
3,7,Cat,Meow
4,8,Cat,Scratch
5,3,Bat,Bruce
6,17,Dog,Fetch
7,30,Dog,Jake

Dan berikut ini:

mongoexport --db=PetHotel --collection=pets --type=csv --fields=type,name,weight,_id --out=data/pets.csv

Hasil dalam ini:

type,name,weight,_id
Dog,Wag,20,1
Dog,Bark,10,2
Cat,Meow,7,3
Cat,Scratch,8,4
Bat,Bruce,3,5
Dog,Fetch,17,6
Dog,Jake,30,7

Kontrol Akses/Otentikasi

Jika Anda tidak menggunakan localhost, Anda dapat menggunakan --host parameter untuk menentukan host, dan --port untuk menentukan port. Anda juga dapat menggunakan --username parameter untuk menentukan nama pengguna dan --password untuk untuk kata sandi. Jika Anda menghilangkan parameter kata sandi, Anda akan diminta untuk memasukkannya. Ada juga --authenticationDatabase parameter untuk menentukan database otentikasi tempat pengguna telah dibuat.

Contoh:

mongoexport --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --out=data/pets.csv

Periksa mongoexport

mongoexport adalah bagian dari paket Alat Database MongoDB. Alat Database MongoDB adalah rangkaian utilitas baris perintah untuk bekerja dengan MongoDB.

Jika Anda tidak yakin apakah Anda memiliki MongoDB Database Tools/mongoexport terinstal, coba jalankan perintah berikut di Terminal atau Command Prompt Anda untuk memeriksa:

mongoexport --version

Jika Anda memilikinya, Anda akan melihat informasi versi, dll. Jika Anda tidak memilikinya, Anda dapat menggunakan petunjuk penginstalan di situs web MongoDB untuk menginstalnya ke sistem Anda.

Di Mana Menjalankan Perintah?

Jangan lupa, Anda harus menjalankan mongoexport perintah dari baris perintah sistem Anda (mis. Terminal baru atau jendela Prompt Perintah).

Jangan jalankan dari mongo kerang.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB membandingkan tanggal hanya tanpa waktu

  2. MongoDB $keInt

  3. Cara menjumlahkan nilai kunci di semua dokumen dalam koleksi MongoDB

  4. Hapus semua bidang yang null

  5. MongoDB atau CouchDB - cocok untuk produksi?