Gibt es eine Möglichkeit, die Mongo-Sammlung in das JSON-Format zu verschieben? Entweder auf der Shell oder mit dem Java-Treiber. Ich suche den mit der besten Leistung.
mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase adminSie können die angeben host, port, username, passwordwie diese und die Standard - Authentifizierungsdatenbank ist admin.
Max Peng
Antworten:
177
Mongo enthält ein Mongoexport-Dienstprogramm (siehe Dokumente), mit dem eine Sammlung gesichert werden kann. Dieses Dienstprogramm verwendet den nativen libmongoclient und ist wahrscheinlich die schnellste Methode.
mongoexport -d <database>-c <collection_name>
Auch hilfreich:
-o: schreibe die Ausgabe in eine Datei, andernfalls wird die Standardausgabe verwendet ( docs )
--jsonArray: generiert ein gültiges JSON-Dokument anstelle eines JSON-Objekts pro Zeile ( Dokumente )
Verwenden Sie das Flag -d, um anzugeben, welche Datenbank verwendet werden soll.
Reimund
8
Wenn Sie hübsch gedrucktes JSON möchten (z. B. um eine Sammlung während der Entwicklung zu überprüfen), verwenden Sie das --prettyFlag:mongoexport -d mydatabase -c mycollection --pretty
Max Truxa
6
Wenn sich Mongo auf einem anderen Host befindet, ist hier ein Beispiel aus dem Mongo-Dokument mongoexport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --out mdb1-examplenet.json
Was wäre cool?
Es scheint --pretty, als wäre es ab Version 2.6.10 weg.
Eiswasser
115
Verwenden Sie mongoexport / mongoimport, um eine Sammlung zu sichern / wiederherzustellen:
WARNUNG
mongoimportund mongoexportbewahren Sie nicht alle Rich-BSON-Datentypen zuverlässig auf, da JSON nur eine Teilmenge der von BSON unterstützten Typen darstellen kann. Infolgedessen können mit diesen Tools exportierte oder importierte Daten ein gewisses Maß an Wiedergabetreue verlieren.
BSON ist so konzipiert, dass es schnell codiert und decodiert werden kann. Ganzzahlen werden beispielsweise als 32- (oder 64-) Bit-Ganzzahlen gespeichert, sodass sie nicht in und aus Text analysiert werden müssen. Dies benötigt mehr Speicherplatz als JSON für kleine Ganzzahlen, ist jedoch viel schneller zu analysieren.
Zusätzlich zur Kompaktheit fügt BSON zusätzliche Datentypen hinzu, die in JSON nicht verfügbar sind, insbesondere die Datentypen BinData und Date.
Gibt es ein Beispiel dafür , was „reich BSON Daten“ würden nicht überleben mongoexport/ mongoimportHin- und Rückfahrt?
Andrewdotn
1
Es bietet Unterstützung für Datentypen wie Datum und Binär, die in JSON nicht unterstützt werden. Auch schneller zum Kodieren und Dekodieren von bsonspec.org
Unter Windows 7 (MongoDB 3.4) hat man die cmd an den Ort zu bewegen , wo mongod.exeund mongo.exeDatei befindet =>
C:\MongoDB\Server\3.4\binsonst wird es nicht es nicht recongnize arbeiten sagen mongoexportBefehl.
Kennt jemand einen Formatierer, der normales JSON in das alberne "Single Line No Comma" -Format formatiert, das MongoDB beim Import erwartet?
conor909
3
Aus der Mongo-Dokumentation:
Das Dienstprogramm mongoexport nimmt eine Sammlung und exportiert sie entweder nach JSON oder nach CSV. Sie können einen Filter für die Abfrage oder eine Liste der auszugebenden Felder angeben
Tatsächlich wird immer noch bson und metadata.bson ausgegeben :-(
Prasad
9
Diese Antwort ist falsch. mongodumpgibt Daten im BSONFormat aus. Andere Antworten werden korrekt mongoexportals das richtige Werkzeug bezeichnet.
Christian Dechery
Dies funktioniert für mich, da die gesamte Sammlung in einem tmp-Ordner mit bson- und json-Dateien ausgegeben wird. Ich habe mongodump -d {dbname} -o tmp
mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase admin
Sie können die angebenhost
,port
,username
,password
wie diese und die Standard - Authentifizierungsdatenbank istadmin
.Antworten:
Mongo enthält ein Mongoexport-Dienstprogramm (siehe Dokumente), mit dem eine Sammlung gesichert werden kann. Dieses Dienstprogramm verwendet den nativen libmongoclient und ist wahrscheinlich die schnellste Methode.
Auch hilfreich:
-o
: schreibe die Ausgabe in eine Datei, andernfalls wird die Standardausgabe verwendet ( docs )--jsonArray
: generiert ein gültiges JSON-Dokument anstelle eines JSON-Objekts pro Zeile ( Dokumente )--pretty
: gibt formatiertes json aus ( docs )quelle
--pretty
Flag:mongoexport -d mydatabase -c mycollection --pretty
mongoexport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --out mdb1-examplenet.json
--pretty
, als wäre es ab Version 2.6.10 weg.Verwenden Sie mongoexport / mongoimport, um eine Sammlung zu sichern / wiederherzustellen:
JSON-Datei exportieren :
mongoexport --db <database-name> --collection <collection-name> --out output.json
JSON-Datei importieren :
mongoimport --db <database-name> --collection <collection-name> --file input.json
Auch http://bsonspec.org/
quelle
mongoexport
/mongoimport
Hin- und Rückfahrt?Hier ist mein Befehl als Referenz:
Unter Windows 7 (MongoDB 3.4) hat man die cmd an den Ort zu bewegen , wo
mongod.exe
undmongo.exe
Datei befindet =>C:\MongoDB\Server\3.4\bin
sonst wird es nicht es nicht recongnize arbeiten sagenmongoexport
Befehl.quelle
Aus der Mongo-Dokumentation:
Lesen Sie hier mehr: http://www.mongodb.org/display/DOCS/mongoexport
quelle
Wenn Sie alle Sammlungen sichern möchten, führen Sie den folgenden Befehl aus:
Es werden alle Sammlungsdaten
json
undbson
Erweiterungen in das/tmp/{DB_NAME}
Verzeichnis generiertquelle
mongodump
gibt Daten imBSON
Format aus. Andere Antworten werden korrektmongoexport
als das richtige Werkzeug bezeichnet.