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

MongoDB - Ekspor Data

Di MongoDB, Anda dapat mengekspor data menggunakan mongoexport utilitas.

Anda dapat menggunakan mongoexport utilitas untuk mengekspor data dari database MongoDB Anda, ke file JSON atau CSV.

Utilitas ini terletak di bin MongoDB direktori (misalnya, /mongodb/bin ). Saat Anda menjalankan utilitas, berikan nama database, koleksi, dan file tujuan ekspor.

Untuk mengekspor data, pertama buka jendela Terminal/Command Prompt baru, lalu ketik perintah yang berlaku.

Ekspor Koleksi ke File JSON

Di sini, kami menggunakan mongoexport untuk mengekspor artis koleksi ke file JSON:

mongoexport --db music --collection artists --out /data/dump/music/artists.json

Pesan yang dihasilkan:

2016-07-12T09:57:37.613+0700	connected to: localhost
2016-07-12T09:57:37.614+0700	exported 13 records

File yang dihasilkan:

{"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"}
{"_id":{"$oid":"5781c9ac48ef8c6b3ffb014a"},"artistname":"Jorn Lande"}
{"_id":1.0,"artistname":"AC/DC"}
{"_id":{"$oid":"5781d7f248ef8c6b3ffb014d"},"artistname":"The Kooks"}
{"_id":{"$oid":"5781d7f248ef8c6b3ffb014e"},"artistname":"Bastille"}
{"_id":{"$oid":"5781d7f248ef8c6b3ffb014f"},"artistname":"Gang of Four"}
{"_id":{"$oid":"5781f85d48ef8c6b3ffb0150"},"artistname":"Deep Purple","albums":[{"album":"Machine Head","year":1972.0,"genre":"Rock"},{"album":"Stormbringer","year":1974.0,"genre":"Rock"}]}
{"_id":{"$oid":"578214f048ef8c6b3ffb0159"},"artistname":"Miles Davis","albums":[{"album":"Kind of Blue","year":1959.0,"genre":"Jazz"},{"album":"Bitches Brew","year":1970.0,"genre":"Jazz"}]}
{"_id":{"$oid":"578217c248ef8c6b3ffb015a"},"artistname":"Robben Ford","albums":[{"album":"Bringing it Back Home","year":2013.0,"genre":"Blues"},{"album":"Talk to Your Daughter","year":1988.0,"genre":"Blues"}]}
{"_id":{"$oid":"578217c248ef8c6b3ffb015b"},"artistname":"Snoop Dogg","albums":[{"album":"Tha Doggfather","year":1996.0,"genre":"Rap"},{"album":"Reincarnated","year":2013.0,"genre":"Reggae"}]}
{"_id":2.0,"artistname":"Prince","address":{"street":"Audubon Road","city":"Chanhassen","state":"Minnesota","country":"United States"}}
{"_id":3.0,"artistname":"Moby","albums":[{"album":"Play","year":1999.0,"genre":"Electronica"},{"album":"Long Ambients 1: Calm. Sleep.","year":2016.0,"genre":"Ambient"}]}
{"_id":4.0,"artistname":"Rush"}

Jika ternyata Anda tidak dapat menjalankan mongoexport , pastikan Anda telah keluar dari mongo utilitas, atau membuka jendela Terminal/Command Prompt baru sebelum menjalankan mongoexport , karena merupakan utilitas terpisah.

Perintah di atas mengasumsikan bahwa direktori bin MongoDB ada di PATH Anda. Jika tidak, Anda harus menggunakan path lengkap ke mongoexport mengajukan. Misalnya, /mongodb/bin/mongoexport atau di mana pun penerapan MongoDB Anda diinstal.

Jika Anda tidak menyediakan jalur file untuk file yang diekspor, itu akan dibuat di mana pun Anda berada saat Anda menjalankan perintah. Berikan jalur lengkap, atau navigasikan ke tempat Anda ingin file data ditulis sebelum Anda menjalankan perintah.

Ekspor Koleksi ke File CSV

Untuk mengekspor ke file CSV, tambahkan --type=csv untuk perintah.

Anda juga harus menentukan bidang dalam dokumen MongoDB yang akan diekspor.

Di sini, kami menggunakan mongoexport untuk mengekspor artis koleksi ke file CSV. Kami mengekspor _id dan nama artis bidang. Kami juga memberi nama file .csv ekstensi.

mongoexport --db music --collection artists --type=csv --fields _id,artistname --out /data/dump/music/artists.csv

Pesan yang dihasilkan:

2016-07-12T10:16:33.111+0700	connected to: localhost
2016-07-12T10:16:33.114+0700	exported 13 records

File CSV yang dihasilkan:

_id,artistname
ObjectId(5780fbf948ef8c6b3ffb0149),The Tea Party
ObjectId(5781c9ac48ef8c6b3ffb014a),Jorn Lande
1,AC/DC
ObjectId(5781d7f248ef8c6b3ffb014d),The Kooks
ObjectId(5781d7f248ef8c6b3ffb014e),Bastille
ObjectId(5781d7f248ef8c6b3ffb014f),Gang of Four
ObjectId(5781f85d48ef8c6b3ffb0150),Deep Purple
ObjectId(578214f048ef8c6b3ffb0159),Miles Davis
ObjectId(578217c248ef8c6b3ffb015a),Robben Ford
ObjectId(578217c248ef8c6b3ffb015b),Snoop Dogg
2,Prince
3,Moby
4,Rush

Ekspor hasil Kueri

Anda dapat menggunakan --query opsi untuk menentukan kueri yang akan diekspor. Kueri harus diapit oleh tanda kutip tunggal.

Di sini, kami mengekspor detail tentang Miles Davis ke file JSON:

mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --out /data/dump/music/miles_davis.json

Pesan yang dihasilkan:

2016-07-12T10:32:19.794+0700	connected to: localhost
2016-07-12T10:32:19.795+0700	exported 1 record

File JSON yang dihasilkan:

{"_id":{"$oid":"578214f048ef8c6b3ffb0159"},"artistname":"Miles Davis","albums":[{"album":"Kind of Blue","year":1959.0,"genre":"Jazz"},{"album":"Bitches Brew","year":1970.0,"genre":"Jazz"}]}

Opsi Lain

ekspor mongo utilitas menyediakan sejumlah opsi. Berikut adalah beberapa yang berpotensi berguna.

--limit Opsi

Membatasi jumlah dokumen dalam ekspor.

mongoexport --db music --collection artists --limit 3 --out /data/dump/music/3_artists.json

File yang dihasilkan:

{"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"}
{"_id":{"$oid":"5781c9ac48ef8c6b3ffb014a"},"artistname":"Jorn Lande"}
{"_id":1.0,"artistname":"AC/DC"}

The --sort Opsi

Menentukan bagaimana hasil diurutkan.

Di sini, kami mengurutkan file berdasarkan _id bidang dalam urutan menaik (yaitu 1 ). Untuk membuatnya turun, gunakan -1 .

mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --out /data/dump/music/3_artists_sorted.json

File yang dihasilkan:

{"_id":1.0,"artistname":"AC/DC"}
{"_id":2.0,"artistname":"Prince","address":{"street":"Audubon Road","city":"Chanhassen","state":"Minnesota","country":"United States"}}
{"_id":3.0,"artistname":"Moby","albums":[{"album":"Play","year":1999.0,"genre":"Electronica"},{"album":"Long Ambients 1: Calm. Sleep.","year":2016.0,"genre":"Ambient"}]}

--skip Opsi

Memungkinkan Anda menginstruksikan mongoexport untuk melewati sejumlah dokumen sebelum memulai operasi ekspor.

mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --skip 2 --out /data/dump/music/3_artists_sorted_skipped.json

File yang dihasilkan:

{"_id":3.0,"artistname":"Moby","albums":[{"album":"Play","year":1999.0,"genre":"Electronica"},{"album":"Long Ambients 1: Calm. Sleep.","year":2016.0,"genre":"Ambient"}]}
{"_id":4.0,"artistname":"Rush"}
{"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"}

Yang --pretty Opsi

Mengeluarkan dokumen dalam format JSON yang lebih mudah dibaca.

mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --pretty --out /data/dump/music/miles_davis_pretty.json

File yang dihasilkan:

{
	"_id": {
		"$oid": "578214f048ef8c6b3ffb0159"
	},
	"artistname": "Miles Davis",
	"albums": [
		{
			"album": "Kind of Blue",
			"year": 1959.0,
			"genre": "Jazz"
		},
		{
			"album": "Bitches Brew",
			"year": 1970.0,
			"genre": "Jazz"
		}
	]
}

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tidak dapat memulai MongoDB sebagai layanan

  2. MongoDB $isArray

  3. Sintaks Java dengan MongoDB

  4. Menghubungkan Aplikasi Heroku ke layanan Atlas MongoDB Cloud

  5. Dukungan transaksi di MongoDB