sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB - Exportera data

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

  1. Att hålla en MongoDB-databasanslutning öppen

  2. ModuleNotFoundError:Ingen modul med namnet 'grp' på Windows

  3. Är MongoDB på något sätt begränsad till en enda kärna?

  4. Torkar upp en generisk RedisTemplate våren 4