MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB - Esporta dati

In MongoDB, puoi esportare i dati utilizzando mongoexport utilità.

Puoi usare mongoexport utility per esportare i dati dal tuo database MongoDB, in un file JSON o CSV.

L'utilità si trova nel bin di MongoDB directory (ad esempio, /mongodb/bin ). Quando esegui l'utilità, fornisci il nome del database, la raccolta e il file in cui desideri che venga esportato.

Per esportare i dati, prima apri una nuova finestra Terminale/Prompt dei comandi, quindi digita il comando applicabile.

Esportare una raccolta in un file JSON

Qui utilizziamo mongoexport per esportare gli artisti raccolta in un file JSON:

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

Messaggio risultante:

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

File risultante:

{"_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"}

Se scopri che non puoi eseguire mongoexport , assicurati di essere uscito da mongo utilità o ha aperto una nuova finestra Terminale/Prompt dei comandi prima di eseguire mongoexport , poiché è un'utilità separata.

Il comando precedente presuppone che la directory bin MongoDB sia nel tuo PERCORSO. In caso contrario, dovrai utilizzare il percorso completo di mongoexport file. Ad esempio, /mongodb/bin/mongoexport o ovunque sia installata la tua distribuzione MongoDB.

Se non fornisci un percorso file per il file esportato, verrà creato ovunque ti trovi quando esegui il comando. Fornisci il percorso completo o vai al punto in cui desideri che il file di dati venga scritto prima di eseguire il comando.

Esportare una raccolta in un file CSV

Per esportare in un file CSV, aggiungi --type=csv al comando.

Devi anche specificare i campi nei documenti MongoDB da esportare.

Qui utilizziamo mongoexport per esportare gli artisti raccolta in un file CSV. Esportiamo il _id e nomeartista campi. Abbiamo anche assegnato al nome del file un .csv estensione.

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

Messaggio risultante:

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

File CSV risultante:

_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

Esportare i risultati di una query

Puoi usare il --query opzione per specificare una query da esportare. La query deve essere racchiusa tra virgolette singole.

Qui esportiamo i dettagli su Miles Davis in un file JSON:

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

Messaggio risultante:

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

File JSON risultante:

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

Altre opzioni

Il mongoexport l'utilità fornisce una serie di opzioni. Eccone alcuni potenzialmente utili.

Il --limit Opzione

Limita il numero di documenti nell'esportazione.

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

File risultante:

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

Il --sort Opzione

Specifica come vengono ordinati i risultati.

Qui, ordiniamo il file in base a _id campo in ordine crescente (es. 1 ). Per farlo discendente, usa un -1 .

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

File risultante:

{"_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"}]}

Il --skip Opzione

Ti permette di istruire mongoexport per saltare un certo numero di documenti prima di iniziare l'operazione di esportazione.

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

File risultante:

{"_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"}

Il --pretty Opzione

Genera i documenti in un formato JSON più leggibile.

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

File risultante:

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