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

Cara Mengekspor Hasil Kueri MongoDB ke File JSON

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

Salah satu hal yang dapat Anda lakukan dengan utilitas ini adalah mengekspor hasil kueri. Artikel ini menunjukkan cara menggunakan mongoexport untuk mengekspor hasil kueri MongoDB ke file JSON.

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.

Contoh

Contoh kode berikut mengekspor hasil kueri ke file JSON:

mongoexport --db=PetHotel --collection=pets --query='{ "type": "Dog" }' --out=data/dogs.json

Ini mengekspor kueri yang menanyakan koleksi yang disebut pets di PetHotel basis data. Kueri diekspor ke file bernama dogs.json 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 .

Anda juga dapat menggunakan --type parameter untuk secara eksplisit menentukan JSON. Standarnya adalah JSON, jadi ini opsional saat mengekspor ke JSON.

Anda juga dapat menyertakan --fields parameter untuk menentukan bidang mana yang akan diekspor. Secara default, ini mengekspor semua bidang saat menggunakan JSON. Namun, saat mengekspor ke CSV, Anda harus menentukan bidang mana yang akan diekspor.

Berikut adalah contoh dari contoh di atas dengan dua parameter ini ditambahkan:

mongoexport --db=PetHotel --collection=pets --type=json --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.json

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

Parameter Deskripsi
--db
atau
-d
Menentukan database untuk menjalankan mongoexport . Dalam hal ini, databasenya disebut PetHotel .
Parameter ini sebagai alternatif dapat diteruskan menggunakan -d (bukan --db ).
--collection
atau
-c
Menentukan koleksi yang ingin kami ekspor (atau menjalankan kueri). 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 json untuk mengekspornya ke file JSON. Mengingat JSON adalah nilai default, parameter ini opsional saat mengekspor ke JSON.
--fields Menentukan bidang yang ingin kita ekspor. Kami memiliki opsi untuk mengekspor semua bidang atau hanya beberapa. Saat mengekspor ke JSON, menentukan nama bidang adalah opsional (ini merupakan persyaratan saat mengekspor ke CSV).
--query
atau
-q
Menentukan kueri hasil yang ingin kita ekspor. Ini harus diapit oleh tanda kutip tunggal (agar tidak berinteraksi dengan shell Anda).
Parameter ini juga dapat diteruskan menggunakan -q .
--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 jalankan kueri terhadap koleksi aslinya.

use PetHotel
db.pets.find({ "type": "Dog" })

Hasil:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }

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

Sekarang mari kita buka file yang diekspor dogs.json untuk melihat apa yang ada di dalamnya:

{"_id":1.0,"name":"Wag","type":"Dog","weight":20.0}
{"_id":2.0,"name":"Bark","type":"Dog","weight":10.0}
{"_id":6.0,"name":"Fetch","type":"Dog","weight":17.0}
{"_id":7.0,"name":"Jake","type":"Dog","weight":30.0}

Semua data ada dalam file yang diekspor seperti yang diharapkan.

Ekspor Lebih Sedikit Bidang

Anda dapat menentukan lebih sedikit bidang dengan --fields parameter jika Anda mau.

Contoh:

mongoexport --db=PetHotel --collection=pets --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.json

File yang dihasilkan:

{"_id":1.0,"name":"Wag","weight":20.0}
{"_id":2.0,"name":"Bark","weight":10.0}
{"_id":6.0,"name":"Fetch","weight":17.0}
{"_id":7.0,"name":"Jake","weight":30.0}

Anda akan melihat bahwa _id bidang disertakan dalam file yang diekspor, meskipun saya tidak secara eksplisit memasukkannya ke dalam --fields argumen. Itu karena _id bidang selalu disertakan saat mengekspor ke JSON – bahkan saat Anda tidak menyertakannya secara eksplisit. Ini tidak terjadi saat mengekspor ke CSV.

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 ke 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 --query='{ "type": "Dog" }' --out=data/dogs.json

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).


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara bergabung dengan kueri di mongodb?

  2. Kueri dengan format tanggal string di mongodb

  3. php mongodb pencarian dan pengurutan teks lengkap

  4. 'Gagal memutuskan tautan kesalahan file soket di MongoDB 3.0

  5. Kueri agregat MongoDB menggunakan driver PHP