I MongoDB kan du eksportere data ved hjælp af mongoexport værktøj.
Du kan bruge mongoexport værktøj til at eksportere data fra din MongoDB-database til en JSON- eller CSV-fil.
Hjælpeprogrammet er placeret i MongoDB bin mappe (f.eks. /mongodb/bin ). Når du kører værktøjet, skal du angive navnet på databasen, samlingen og den fil, du vil have den eksporteret til.
For at eksportere data skal du først åbne et nyt terminal-/kommandopromptvindue og derefter skrive den relevante kommando.
Eksporter en samling til en JSON-fil
Her bruger vi mongoexport for at eksportere kunstnerne samling til en JSON-fil:
mongoexport --db music --collection artists --out /data/dump/music/artists.json
Resulterende besked:
2016-07-12T09:57:37.613+0700 connected to: localhost 2016-07-12T09:57:37.614+0700 exported 13 records
Resulterende fil:
{"_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"}
Hvis du opdager, at du ikke kan køre mongoexport , vær sikker på, at du enten har forladt mongo hjælpeprogram, eller åbnet et nyt terminal-/kommandopromptvindue, før du kørte mongoexport , da det er et separat hjælpeprogram.
Ovenstående kommando antager, at MongoDB bin-mappen er i din PATH. Hvis det ikke er det, skal du bruge den fulde sti til
mongoexport
fil. For eksempel /mongodb/bin/mongoexport
eller hvor som helst din MongoDB-implementering er installeret.
Hvis du ikke angiver en filsti til den eksporterede fil, oprettes den, uanset hvor du befinder dig, når du kører kommandoen. Angiv enten den fulde sti, eller naviger til det sted, hvor du vil have datafilen skrevet, før du kører kommandoen.
Eksporter en samling til en CSV-fil
For at eksportere til en CSV-fil skal du tilføje --type=csv
til kommandoen.
Du skal også angive felterne i MongoDB-dokumenterne, der skal eksporteres.
Her bruger vi mongoexport for at eksportere kunstnerne samling til en CSV-fil. Vi eksporterer _id og kunstnernavn felter. Vi har også givet filnavnet .csv udvidelse.
mongoexport --db music --collection artists --type=csv --fields _id,artistname --out /data/dump/music/artists.csv
Resulterende besked:
2016-07-12T10:16:33.111+0700 connected to: localhost 2016-07-12T10:16:33.114+0700 exported 13 records
Resulterende CSV-fil:
_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
Eksporter resultaterne af en forespørgsel
Du kan bruge --query
mulighed for at angive en forespørgsel, der skal eksporteres. Forespørgslen skal være omgivet af enkelte anførselstegn.
Her eksporterer vi detaljer om Miles Davis til en JSON-fil:
mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --out /data/dump/music/miles_davis.json
Resulterende besked:
2016-07-12T10:32:19.794+0700 connected to: localhost 2016-07-12T10:32:19.795+0700 exported 1 record
Resulterende JSON-fil:
{"_id":{"$oid":"578214f048ef8c6b3ffb0159"},"artistname":"Miles Davis","albums":[{"album":"Kind of Blue","year":1959.0,"genre":"Jazz"},{"album":"Bitches Brew","year":1970.0,"genre":"Jazz"}]}
Andre muligheder
mongoexport hjælpeprogrammet giver en række muligheder. Her er nogle potentielt nyttige.
--limit
Mulighed
Begrænser antallet af dokumenter i eksporten.
mongoexport --db music --collection artists --limit 3 --out /data/dump/music/3_artists.json
Resulterende fil:
{"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"} {"_id":{"$oid":"5781c9ac48ef8c6b3ffb014a"},"artistname":"Jorn Lande"} {"_id":1.0,"artistname":"AC/DC"}
--sort
Mulighed
Angiver, hvordan resultaterne er sorteret.
Her sorterer vi filen efter
_id
felt i stigende rækkefølge (dvs. 1
). For at gøre det faldende, brug en -1
.
mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --out /data/dump/music/3_artists_sorted.json
Resulterende fil:
{"_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
Mulighed
Giver dig mulighed for at instruere mongoexport for at springe et antal dokumenter over, før du starter eksportoperationen.
mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --skip 2 --out /data/dump/music/3_artists_sorted_skipped.json
Resulterende fil:
{"_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"}
Den --pretty
Mulighed
Udskriver dokumenter i et mere læsbart JSON-format.
mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --pretty --out /data/dump/music/miles_davis_pretty.json
Resulterende fil:
{ "_id": { "$oid": "578214f048ef8c6b3ffb0159" }, "artistname": "Miles Davis", "albums": [ { "album": "Kind of Blue", "year": 1959.0, "genre": "Jazz" }, { "album": "Bitches Brew", "year": 1970.0, "genre": "Jazz" } ] }