MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB - Daten exportieren

In MongoDB können Sie Daten mit mongoexport exportieren Dienstprogramm.

Sie können den mongoexport verwenden Dienstprogramm zum Exportieren von Daten aus Ihrer MongoDB-Datenbank in eine JSON- oder CSV-Datei.

Das Dienstprogramm befindet sich in MongoDB bin Verzeichnis (zB /mongodb/bin ). Geben Sie beim Ausführen des Dienstprogramms den Namen der Datenbank, der Sammlung und der Datei an, in die sie exportiert werden soll.

Öffnen Sie zum Exportieren von Daten zunächst ein neues Terminal-/Eingabeaufforderungsfenster und geben Sie dann den entsprechenden Befehl ein.

Exportieren Sie eine Sammlung in eine JSON-Datei

Hier verwenden wir mongoexport um die Künstler zu exportieren Sammlung in eine JSON-Datei:

mongoexport --db music --collection artists --out /data/dump/music/artists.json

Ergebnismeldung:

2016-07-12T09:57:37.613+0700	connected to: localhost
2016-07-12T09:57:37.614+0700	exported 13 records

Ergebnisdatei:

{"_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"}

Wenn Sie feststellen, dass Sie mongoexport nicht ausführen können , vergewissern Sie sich, dass Sie entweder mongo beendet haben oder öffnen Sie ein neues Terminal-/Eingabeaufforderungsfenster, bevor Sie mongoexport ausführen , da es sich um ein separates Dienstprogramm handelt.

Der obige Befehl geht davon aus, dass sich das MongoDB-bin-Verzeichnis in Ihrem PATH befindet. Ist dies nicht der Fall, müssen Sie den vollständigen Pfad zum mongoexport verwenden Datei. Beispiel:/mongodb/bin/mongoexport oder wo auch immer Ihre MongoDB-Bereitstellung installiert ist.

Wenn Sie keinen Dateipfad für die exportierte Datei angeben, wird sie dort erstellt, wo Sie sich befinden, wenn Sie den Befehl ausführen. Geben Sie entweder den vollständigen Pfad an oder navigieren Sie zu der Stelle, an der die Datendatei geschrieben werden soll, bevor Sie den Befehl ausführen.

Sammlung in eine CSV-Datei exportieren

Um in eine CSV-Datei zu exportieren, fügen Sie --type=csv hinzu zum Befehl.

Sie müssen auch die Felder in den zu exportierenden MongoDB-Dokumenten angeben.

Hier verwenden wir mongoexport um die Künstler zu exportieren Sammlung in eine CSV-Datei. Wir exportieren die _id und Künstlername Felder. Wir haben dem Dateinamen auch ein .csv gegeben Erweiterung.

mongoexport --db music --collection artists --type=csv --fields _id,artistname --out /data/dump/music/artists.csv

Ergebnismeldung:

2016-07-12T10:16:33.111+0700	connected to: localhost
2016-07-12T10:16:33.114+0700	exported 13 records

Resultierende CSV-Datei:

_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

Exportieren Sie die Ergebnisse einer Abfrage

Sie können die --query verwenden Option zum Angeben einer zu exportierenden Abfrage. Die Abfrage muss in einfache Anführungszeichen gesetzt werden.

Hier exportieren wir Details zu Miles Davis in eine JSON-Datei:

mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --out /data/dump/music/miles_davis.json

Ergebnismeldung:

2016-07-12T10:32:19.794+0700	connected to: localhost
2016-07-12T10:32:19.795+0700	exported 1 record

Resultierende JSON-Datei:

{"_id":{"$oid":"578214f048ef8c6b3ffb0159"},"artistname":"Miles Davis","albums":[{"album":"Kind of Blue","year":1959.0,"genre":"Jazz"},{"album":"Bitches Brew","year":1970.0,"genre":"Jazz"}]}

Andere Optionen

Der mongoexport Dienstprogramm bietet eine Reihe von Optionen. Hier sind einige potenziell nützliche.

Das --limit Möglichkeit

Begrenzt die Anzahl der Dokumente im Export.

mongoexport --db music --collection artists --limit 3 --out /data/dump/music/3_artists.json

Ergebnisdatei:

{"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"}
{"_id":{"$oid":"5781c9ac48ef8c6b3ffb014a"},"artistname":"Jorn Lande"}
{"_id":1.0,"artistname":"AC/DC"}

Der --sort Möglichkeit

Gibt an, wie die Ergebnisse sortiert werden.

Hier sortieren wir die Datei nach der _id Feld in aufsteigender Reihenfolge (also 1 ). Um es absteigend zu machen, verwenden Sie ein -1 .

mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --out /data/dump/music/3_artists_sorted.json

Ergebnisdatei:

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

Der --skip Möglichkeit

Ermöglicht es Ihnen, mongoexport anzuweisen um eine Reihe von Dokumenten zu überspringen, bevor der Exportvorgang gestartet wird.

mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --skip 2 --out /data/dump/music/3_artists_sorted_skipped.json

Ergebnisdatei:

{"_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"}

Der --pretty Möglichkeit

Gibt Dokumente in einem besser lesbaren JSON-Format aus.

mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --pretty --out /data/dump/music/miles_davis_pretty.json

Ergebnisdatei:

{
	"_id": {
		"$oid": "578214f048ef8c6b3ffb0159"
	},
	"artistname": "Miles Davis",
	"albums": [
		{
			"album": "Kind of Blue",
			"year": 1959.0,
			"genre": "Jazz"
		},
		{
			"album": "Bitches Brew",
			"year": 1970.0,
			"genre": "Jazz"
		}
	]
}