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