I MongoDB kan du exportera data med mongoexport verktyg.
Du kan använda mongoexport verktyg för att exportera data från din MongoDB-databas till en JSON- eller CSV-fil.
Verktyget finns i MongoDB bin katalog (t.ex. /mongodb/bin ). När du kör verktyget anger du namnet på databasen, samlingen och filen du vill att den ska exporteras till.
För att exportera data, öppna först ett nytt terminal/kommandotolkfönster och skriv sedan det tillämpliga kommandot.
Exportera en samling till en JSON-fil
Här använder vi mongoexport för att exportera artisterna samling till en JSON-fil:
mongoexport --db music --collection artists --out /data/dump/music/artists.json
Resultatmeddelande:
2016-07-12T09:57:37.613+0700 connected to: localhost 2016-07-12T09:57:37.614+0700 exported 13 records
Resultatfil:
{"_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"}
Om du upptäcker att du inte kan köra mongoexport , se till att du antingen har lämnat mongo verktyg, eller öppnade ett nytt terminal/kommandotolkfönster innan du körde mongoexport , eftersom det är ett separat verktyg.
Ovanstående kommando förutsätter att MongoDB bin-katalogen finns i din PATH. Om det inte är det måste du använda hela sökvägen till
mongoexport
fil. Till exempel, /mongodb/bin/mongoexport
eller varhelst din MongoDB-distribution är installerad.
Om du inte anger en filsökväg för den exporterade filen kommer den att skapas var du än befinner dig när du kör kommandot. Ange antingen hela sökvägen eller navigera till var du vill att datafilen ska skrivas innan du kör kommandot.
Exportera en samling till en CSV-fil
För att exportera till en CSV-fil, lägg till --type=csv
till kommandot.
Du måste också ange fälten i MongoDB-dokumenten som ska exporteras.
Här använder vi mongoexport för att exportera artisterna samling till en CSV-fil. Vi exporterar _id och artistnamn fält. Vi har även gett filnamnet .csv förlängning.
mongoexport --db music --collection artists --type=csv --fields _id,artistname --out /data/dump/music/artists.csv
Resultatmeddelande:
2016-07-12T10:16:33.111+0700 connected to: localhost 2016-07-12T10:16:33.114+0700 exported 13 records
Resulterande 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
Exportera resultatet av en fråga
Du kan använda --query
alternativet för att ange en fråga som ska exporteras. Frågan måste omges av enkla citattecken.
Här exporterar vi information om Miles Davis till en JSON-fil:
mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --out /data/dump/music/miles_davis.json
Resultatmeddelande:
2016-07-12T10:32:19.794+0700 connected to: localhost 2016-07-12T10:32:19.795+0700 exported 1 record
Resulterande 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"}]}
Andra alternativ
mongoexport verktyget ger ett antal alternativ. Här är några potentiellt användbara.
--limit
Alternativ
Begränsar antalet dokument i exporten.
mongoexport --db music --collection artists --limit 3 --out /data/dump/music/3_artists.json
Resultatfil:
{"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"} {"_id":{"$oid":"5781c9ac48ef8c6b3ffb014a"},"artistname":"Jorn Lande"} {"_id":1.0,"artistname":"AC/DC"}
--sort
Alternativ
Anger hur resultaten är ordnade.
Här sorterar vi filen efter
_id
fältet i stigande ordning (dvs. 1
). För att göra det fallande, använd en -1
.
mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --out /data/dump/music/3_artists_sorted.json
Resultatfil:
{"_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
Alternativ
Låter dig instruera mongoexport för att hoppa över ett antal dokument innan du startar exportoperationen.
mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --skip 2 --out /data/dump/music/3_artists_sorted_skipped.json
Resultatfil:
{"_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
Alternativ
Matar ut dokument i ett mer läsbart JSON-format.
mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --pretty --out /data/dump/music/miles_davis_pretty.json
Resultatfil:
{ "_id": { "$oid": "578214f048ef8c6b3ffb0159" }, "artistname": "Miles Davis", "albums": [ { "album": "Kind of Blue", "year": 1959.0, "genre": "Jazz" }, { "album": "Bitches Brew", "year": 1970.0, "genre": "Jazz" } ] }