Die MongoDB-Datenbanktools enthalten ein Dienstprogramm namens mongoexport
damit können Sie MongoDB-Daten in eine CSV- oder JSON-Datei exportieren.
Dieser Artikel zeigt Ihnen, wie Sie mongoexport
verwenden um eine MongoDB-Sammlung in eine JSON-Datei zu exportieren.
Syntax
Die Syntax für mongoexport
geht so:
mongoexport --collection=<coll> <options> <connection-string>
Sie müssen mongoexport
ausführen Befehle über die Befehlszeile Ihres Systems (z. B. ein neues Terminal- oder Eingabeaufforderungsfenster).
Führen Sie mongoexport
nicht aus Befehle aus dem mongo
Hülse.
Sammlung exportieren
Der folgende Beispielcode exportiert eine Sammlung aus MongoDB in eine JSON-Datei:
mongoexport --db=PetHotel --collection=pets --out=data/pets.json
Dies exportiert eine Sammlung namens pets
vom PetHotel
Datenbank in eine Datei namens pets.json
in den data/
Mappe.
Wenn der Ordner nicht vorhanden ist, wird er erstellt. Das gleiche mit der Datei. Übrigens setzt dies voraus, dass es keine Berechtigungsprobleme beim Schreiben einer Datei an den angegebenen Speicherort gibt.
In diesem Beispiel habe ich keinen Host, Port, Authentifizierung usw. angegeben, daher wird die Sammlung aus der MongoDB-Instanz exportiert, die auf der standardmäßigen localhost-Portnummer 27017
ausgeführt wird .
Das obige Beispiel könnte auch so geschrieben werden:
mongoexport --db=PetHotel --collection=pets --type=json --fields=_id,name,type,weight --out=data/pets.json
In diesem Fall haben wir den --type
hinzugefügt Parameter und ein --fields
-Parameter, um anzugeben, welche Felder in die JSON-Datei aufgenommen werden sollen.
Nachfolgend finden Sie eine Erklärung der Parameter, die wir hier angegeben haben.
Parameter | Beschreibung |
---|---|
--db oder -d | Gibt die Datenbank an, die die zu exportierende Sammlung enthält. In diesem Fall heißt die Datenbank PetHotel . Alternativ kann dieser Parameter auch mit -d übergeben werden (anstelle von --db ). |
--collection oder -c | Gibt die Sammlung an, die wir exportieren möchten. In diesem Fall heißt die Sammlung pets . Dieser Parameter kann alternativ als -c übergeben werden (anstelle von --collection ). |
--type | Gibt den exportierten Dateityp an. In diesem Fall geben wir json an um es in eine JSON-Datei zu exportieren. json ist der Standardwert. Wenn wir diesen Parameter also nicht angeben, wird die Datei als JSON-Datei ausgegeben. |
--fields | Gibt die Felder an, die wir exportieren möchten. Wir haben die Möglichkeit, alle Felder in der Sammlung oder nur einige zu exportieren. Trennen Sie mehrere Feldnamen durch ein Komma. Beim Export nach JSON ist die Angabe von Feldnamen optional (anders als bei CSV). |
--out | Gibt den Namen der exportierten Datei und ihren Speicherort an. Wenn Sie keinen Dateinamen angeben, mongoexport schreibt Daten auf die Standardausgabe (stdout ). |
Überprüfen Sie die exportierte Datei
Lassen Sie uns überprüfen, ob der Exportvorgang wie erwartet funktioniert hat.
Sehen wir uns zunächst die ursprüngliche Sammlung an.
use PetHotel
db.pets.find()
Ergebnis:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 } { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 } { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 } { "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 } { "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
Wir können also sehen, dass es 7 Haustiere gibt, alle mit denselben Feldern, die wir in unserem Exportvorgang angegeben haben.
Öffnen wir nun die exportierte Datei pets.json
um zu sehen, was drin ist:
{"_id":1.0,"name":"Wag","type":"Dog","weight":20.0} {"_id":2.0,"name":"Bark","type":"Dog","weight":10.0} {"_id":3.0,"name":"Meow","type":"Cat","weight":7.0} {"_id":4.0,"name":"Scratch","type":"Cat","weight":8.0} {"_id":5.0,"name":"Bruce","type":"Bat","weight":3.0} {"_id":6.0,"name":"Fetch","type":"Dog","weight":17.0} {"_id":7.0,"name":"Jake","type":"Dog","weight":30.0}
Alle Daten befinden sich wie erwartet in der exportierten Datei.
Weniger Felder
Sie können die --fields
verwenden Parameter, um anzugeben, welche Felder Sie exportieren möchten.
Wenn Sie dies für JSON-Dateien tun, wird die _id
-Feld wird immer exportiert (auch wenn Sie es nicht in die Liste der zu exportierenden Felder aufnehmen).
Beispiel:
mongoexport --db=PetHotel --collection=pets --fields=name,type --out=data/pets.json
In diesem Fall gebe ich zwei zu exportierende Felder an.
Wenn ich die exportierte Datei öffne, sehe ich, dass diese beiden Felder exportiert werden, plus die _id
Feld:
{"_id":1.0,"name":"Wag","type":"Dog"} {"_id":2.0,"name":"Bark","type":"Dog"} {"_id":3.0,"name":"Meow","type":"Cat"} {"_id":4.0,"name":"Scratch","type":"Cat"} {"_id":5.0,"name":"Bruce","type":"Bat"} {"_id":6.0,"name":"Fetch","type":"Dog"} {"_id":7.0,"name":"Jake","type":"Dog"}
Zugriffskontrolle/Authentifizierung
Wenn Sie localhost nicht verwenden, können Sie --host
verwenden -Parameter zur Angabe des Hosts und --port
um den Port anzugeben. Sie können auch den --username
verwenden Parameter zur Angabe des Benutzernamens und --password
für das Passwort. Wenn Sie den Kennwortparameter weglassen, werden Sie dazu aufgefordert. Es gibt auch eine --authenticationDatabase
Parameter zur Angabe der Authentifizierungsdatenbank, in der der Benutzer erstellt wurde.
Beispiel:
mongoexport --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin --db=PetHotel --collection=pets --out=data/pets.json
Suchen Sie nach mongoexport
mongoexport
ist Teil des MongoDB Database Tools-Pakets. Die MongoDB-Datenbanktools sind eine Reihe von Befehlszeilendienstprogrammen für die Arbeit mit MongoDB.
Wenn Sie nicht sicher sind, ob Sie die MongoDB Database Tools/mongoexport
haben installiert haben, versuchen Sie, den folgenden Befehl in Ihrem Terminal oder in der Eingabeaufforderung auszuführen, um dies zu überprüfen:
mongoexport --version
Wenn Sie es haben, sollten Sie Versionsinformationen usw. sehen. Wenn Sie es nicht haben, können Sie die Installationsanweisungen auf der MongoDB-Website verwenden, um es auf Ihrem System zu installieren.
Wo sollen die Befehle ausgeführt werden?
Vergessen Sie nicht, dass Sie mongoexport
ausführen müssen Befehle über die Befehlszeile Ihres Systems (z. B. ein neues Terminal- oder Eingabeaufforderungsfenster).
Führen Sie sie nicht vom mongo
aus Hülse.