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

MongoDB - Eksporter data

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

  1. MongoDB $round vs $trunc:Hvad er forskellen?

  2. JavaScript-designmønstre -- Håndtering af uønsket asynkroni

  3. MongoDB sorterer dokumenter efter array-elementer

  4. Hvad er __v-feltet i Mongoose