Ich weiß also nicht viel darüber MongoDB
. Ich habe RoboMongo
mit denen ich mich mit einer MongoDB verbinde. Was ich tun muss, ist Folgendes: In dieser MongoDB befindet sich eine Sammlung. Ich möchte die Daten aus dieser Sammlung exportieren, damit ich sie in einer Datei speichern kann.
Ich habe die Oberfläche verwendet, um die Daten aus der Sammlung als Text zu öffnen und habe ein Ctrl+ gemacht Aund in eine Textdatei eingefügt. Ich habe jedoch festgestellt, dass nicht alle Daten kopiert werden und dass die Textdaten viele Kommentare enthalten, die den JSON natürlich beschädigen.
Ich frage mich, ob RoboMongo eine Export As JSON
Einrichtung hat, mit der ich einen sauberen Export durchführen kann.
Hinweise sind willkommen!
mongoexport
Befehlszeilentool zu verwenden.mongoexport --uri='mongodb://[email protected]:27017/marketing' --collection=contacts --out=contacts.json
Antworten:
Sie können
tojson
jeden Datensatz in einem MongoDB-Shell-Skript in JSON konvertieren .Führen Sie dieses Skript in RoboMongo aus:
Dadurch werden alle Ergebnisse als JSON-ähnliches Array gedruckt.
Das Ergebnis ist nicht wirklich JSON! Einige Typen, wie Datumsangaben und Objekt-IDs, werden als JavaScript-Funktionsaufrufe gedruckt, z
ISODate("2016-03-03T12:15:49.996Z")
.Möglicherweise ist es für große Ergebnismengen nicht sehr effizient, aber Sie können die Abfrage einschränken. Alternativ können Sie verwenden
mongoexport
.quelle
tojson(db.getCollection(...).find(...)["_batch"])
der gesamte aktuelle Stapel vom Server ausgegeben werden.["_batch"]
? Können Sie ein Beispiel geben, wie man das benutzt? Ich habe dies mit Robo 3T 1.2.1 versucht, aber es heißt nur "Skript erfolgreich ausgeführt, aber es gibt keine Ergebnisse zu zeigen".tojson(db.getCollection(...).find(...).toArray())
.Ein schneller und schmutziger Weg: Schreiben Sie einfach Ihre Anfrage als
db.getCollection('collection').find({}).toArray()
und klicken Sie mit der rechten MaustasteCopy JSON
. Fügen Sie die Daten in den Editor Ihrer Wahl ein.quelle
Robomongos Shell-Funktionalität wird das Problem lösen. In meinem Fall brauchte ich einige Spalten als CSV-Format.
quelle
Es gibt einige MongoDB-GUIs, von denen einige eine integrierte Unterstützung für den Datenexport bieten. Eine umfassende Liste der MongoDB-GUIs finden Sie unter http://mongodb-tools.com
Sie haben nach dem Exportieren der Ergebnisse Ihrer Abfrage und nicht nach dem Exportieren ganzer Sammlungen gefragt. Probieren Sie die 3T MongoChef MongoDB-Benutzeroberfläche aus. Dieses Tool unterstützt Ihren speziellen Anwendungsfall.
quelle
Sie sagen "In Datei exportieren" wie in einer Tabelle? wie zu einem .csv?
IMO ist dies der EINFACHSTE Weg, dies in Robo 3T (ehemals Robomongo) zu tun:
Oben rechts in der Robo 3T-Benutzeroberfläche befindet sich die Schaltfläche "Ergebnisse im Textmodus anzeigen". Klicken Sie darauf und kopieren Sie alles
Fügen Sie alles in diese Website ein: https://json-csv.com/
Klicken Sie auf den Download-Button und Sie haben es jetzt in einer Tabelle.
Ich hoffe, das hilft jemandem, denn ich wünschte, Robo 3T hätte Exportmöglichkeiten
quelle
Führen Sie diesen Befehl nicht in der Shell aus, sondern geben Sie dieses Skript an einer Eingabeaufforderung ein, wobei Ihr Datenbankname, Ihr Sammlungsname und Ihr Dateiname die Platzhalter ersetzen.
Für mich geht das.
quelle
Ich glaube nicht, dass Robomongo eine solche Funktion hat. Verwenden Sie also besser die Mongodb-Funktion als Mongoexport für eine bestimmte Sammlung.
Wenn Sie jedoch nach einer Backup-Lösung suchen, ist diese besser zu verwenden
quelle
Als Erweiterung von Anishs Antwort wollte ich etwas, das ich auf jede Abfrage anwenden kann, um automatisch alle Felder auszugeben, anstatt sie in der print-Anweisung definieren zu müssen. Es kann wahrscheinlich vereinfacht werden, aber das war etwas schnelles und schmutziges, das großartig funktioniert:
quelle
Wenn Sie mongoimport verwenden möchten , möchten Sie folgendermaßen exportieren:
quelle
Verwenden eines Robomongo-Shell-Skripts:
Verwenden des Export- und Importbefehls von mongodb
Sie können den
--jsonArray
Parameter / das Flag zu Ihrem hinzufügenmongoexport
Befehl Dadurch wird das Ergebnis als einzelnes JSON-Array exportiert.Geben Sie
--jsonArray
dann beim Importieren einfach das Flag erneut an.Oder entfernen Sie die beginnenden und endenden Array-Klammern [] in der Datei. Anschließend wird Ihre geänderte und exportierte Datei mit dem
mongoimport
Befehl ohne--jsonArray
Flag importiert .Weitere Informationen zum Export finden Sie hier: https://docs.mongodb.org/manual/reference/program/mongoexport/#cmdoption--jsonArray
Importieren Sie hier: https://docs.mongodb.org/manual/reference/program/mongoimport/#cmdoption--jsonArray
quelle
Ich hatte das gleiche Problem und das Ausführen eines Skripts in Robomongo (Robo 3T 1.1.1) erlaubt auch nicht das Kopieren von Werten, und es gab auch keine Exportoption. Der beste Weg, dies zu erreichen, ist die Verwendung von Mongoexport. Wenn Mongodb auf Ihrem lokalen Server installiert ist, können Sie Mongoexport verwenden, um eine Verbindung zur Datenbank auf einem beliebigen Server herzustellen und Daten zu extrahieren
Führen Sie den folgenden Mongoexport in Ihrer Befehlszeile aus, um eine Verbindung zu Daten auf dem Remote-Server und zur CSV-Ausgabedatei herzustellen
fieldFile: hilft beim Extrahieren der gewünschten Spalten. Beispiel: Der Inhalt von fields.txt kann einfach sein:
um nur Werte der Spalte 'userId' zu extrahieren
Daten auf Remote-Server, JSON-Ausgabedatei:
Dadurch werden alle Felder in die JSON-Datei extrahiert
Daten auf localhost (mongodb sollte auf localhost ausgeführt werden)
Referenz: https://docs.mongodb.com/manual/reference/program/mongoexport/#use
quelle
Lösung:
Wobei:
Datenbank ->
Name der Mock-Server- Sammlung -> Name der
Ausgabedatei von api_defs -> childChoreRequest.json
quelle
Eine Erweiterung der Antwort von Florian Winter für Personen, die eine ausführbare Abfrage generieren möchten.
drop
undinsertMany
Abfrage mitcursor
:Die Ausgabe lautet wie folgt:
quelle
quelle