Importieren Sie eine JSON-Datei in MongoDB
- Was ist MongoDB
-
den
mongoimport
-Befehl -
Importieren Sie Daten in MongoDB mit dem Befehl
mongoimport
-
Importieren Sie JSON-Dateien in MongoDB mit dem Befehl
mongoimport
-
Importieren Sie CSV-Dateien in MongoDB mit dem Befehl
mongoimport
-
Importieren Sie TSV-Dateien in MongoDB mit dem Befehl
mongoimport
In diesem Tutorial wird erläutert, wie Sie alle drei Dateiformate (JSON, CSV und TSV) schnell und einfach in Ihre MongoDB-Datenbankinstanz importieren können. Also, ohne weitere Umschweife, lasst uns gleich loslegen.
Was ist MongoDB
MongoDB ist ein NoSQL (nicht relationales) Datenbanksystem.
Das Einpassen verschiedener Daten in ein enges relationales Modell ist mühsam, wenn Sie mit enormen Datenmengen arbeiten. SQL-Datenbanken, auch als relationale Datenbankverwaltungssysteme (RDBMS) bekannt, speichern Daten in Zeilen und Spalten gemäß einem vordefinierten Design, das nicht ideal zum Speichern großer Datenmengen ist.
Nicht relationale oder NoSQL-Datenbanken wie MongoDB verfügen über dynamische Schemas, die Entwickler im Handumdrehen aktualisieren können. Mit einem Schwerpunkt auf größerer Skalierbarkeit und schneller Suche hat sich MongoDB als bevorzugte Lösung gegenüber SQL-Datenbanken herausgestellt.
Die dynamische Schemaarchitektur von MongoDB ermöglicht schnelle Anwendungsaktualisierungen und vereinfacht gleichzeitig die Programmierung für Entwickler.
MongoDB ist für Entwickler von Vorteil, da es offizielle Unterstützung für alle gängigen Sprachen bietet, einschließlich C, C++, C# usw. Außerdem net, Go, Java, Node.js, Perl, PHP, Python, Motor, Ruby, Scala, Swift , und Mongod sind Beispiele für Programmiersprachen.
Dadurch können Entwickler ihre bevorzugten Sprachen auswählen, was zu kürzeren Entwicklungszeiten und weniger Fehlern führt.
Hauptmerkmale von MongoDB
-
Schnelle Abfragen: MongoDB-Abfragen sind wesentlich schneller (bis zu 100-mal schneller) als Abfragen in einer typischen relationalen Datenbank. Dies liegt daran, dass SQL-Datenbanken Daten in einem normalisierten Format speichern und Abfragen für ein einzelnes Objekt oder eine Entität Daten aus zahlreichen Tabellen verknüpfen müssen, was zu langsameren Prozessen führt.
-
Umgang mit großen unstrukturierten Daten: Die Dokumentdatenarchitektur von MongoDB, die alle zugehörigen Daten in einem einzigen Dokument speichert, ermöglicht es, enorme Mengen unstrukturierter Daten nahtlos zu verarbeiten. MongoDB ermöglicht es Ihnen auch, Abfragen auf eine andere Art und Weise durchzuführen, die arbeitslastempfindlicher ist.
-
Horizontale Skalierung: Die horizontale Skalierbarkeit ist ein entscheidender Bereich, in dem die meisten SQL-Datenbanken zu kurz kommen. Sie unterstützen es entweder ad hoc oder ausschließlich auf Technologien, die noch in den Kinderschuhen stecken.
Andererseits ermöglicht MongoDB eine horizontale Skalierung, sodass Sie bei Bedarf kostengünstigere Commodity-Server hinzufügen können.
-
Sharding: MongoDB ermöglicht es Ihnen, enorme Datenmengen zu speichern, indem Sie sie auf mehrere Server verteilen, die mit Ihrer App verbunden sind. Wenn ein Server die Größe der Daten nicht verwalten kann, werden die Daten automatisch auf einen anderen Server aufgeteilt.
-
Einfach für Entwickler: Die Datenstrukturen von MongoDB können denen von Computersprachen zugeordnet werden. Dies reduziert den Zeit- und Arbeitsaufwand für Entwickler, um neue Sprachen zu lernen, MongoDB zu konfigurieren und Daten zu speichern.
den mongoimport
-Befehl
Vor dem Ausführen des Befehls mongoimport
müssen alle Benutzer die MongoDB-Datenbankdienstprogramme auf ihrem Computer installiert haben.
Der Befehl mongoimport
kann Inhalte aus einem von mongoexport
erstellten erweiterten JSON-, CSV- oder TSV-Export importieren. Außerdem können Sie Daten aus Exportprogrammen von Drittanbietern wiederherstellen oder importieren.
Wenn es um die Verwaltung Ihrer MongoDB-Datenbank geht, ist dieser Befehl praktisch. Es ist schneller und multithreaded als jedes maßgeschneiderte Skript, das Sie möglicherweise entwickeln, um Ihren Import durchzuführen.
Andere MongoDB-Befehlszeilentools wie jq
für die JSON-Manipulation, csvkit
für die CSV-Manipulation oder sogar curl für das dynamische Abrufen von Datendateien von Servern im Internet können mit dem Befehl mongoimport
gekoppelt werden.
Der Befehl mongoimport
hat folgende Syntax:
`mongoimport` <options> <connection-string> <file>
Im erweiterten Format sieht es so aus:
mongoimport --host -u -p --authenticationDatabase --db --colle --drop --file /name_of_file
In den folgenden Abschnitten gehen wir die zahlreichen Möglichkeiten durch, wie Sie die Syntax verwenden können, um verschiedene Dateitypen wie JSON, CSV und TSV zu importieren.
Anwendungen des mongoimport
-Befehls
Es kann verschiedene Situationen geben, in denen Sie auf einige Daten verweisen oder eine Sammlung importieren möchten, die bereits in Ihrer Datenbank vorhanden ist, unabhängig von der Art der Webanwendung, die Ihr Team entwickelt. Zu diesen Aufgaben gehört das Abrufen von Daten aus einer Sammlung von JSON- oder CSV-Dateien mit dem MongoDB-Befehl mongoimport
.
MongoDB kann als Backend-Informationsquelle verwendet werden, wenn Ihre Kunden Ihre Webanwendungen verwenden, und mongoimport
kann hilfreich sein.
Im Vergleich zu den Dateiformaten CSV oder TSV wird JSON empfohlen, da es sowohl ein hierarchisches Datenformat als auch präzise Angaben zu den codierten Datentypen macht, vergleichbar mit MongoDB-Dokumenten. Mit diesem Wissen werden wir Sie nicht ermutigen, Ihre Daten jedes Mal in JSON-Formulare umzuwandeln, wenn Sie sie mit mongoimport
importieren möchten; Untersuchen Sie es stattdessen und entscheiden Sie, ob Sie es neu organisieren möchten oder nicht.
Überlegungen zur Verwendung des Befehls mongoimport
Vermeiden Sie vorsichtshalber die Verwendung von mongoimport
und mongoexport
für vollständige Sicherungen der Instanzproduktion. Die Befehle mongoimport
und mongoexport
können nicht zuverlässig alle umfangreichen BSON-Datentypen beibehalten, da JSON nur eine Teilmenge der BSON-Typen darstellt.
Anstatt mongodump
und mongorestore
zu verwenden, schlagen wir daher vor, mongodump
und mongorestore
zu verwenden.
Hier ist ein Beispiel für die Einfügeoperation in der Mongo-Shell, die die Shell-Modus-Präsentation für die BSON-Typen data date
und data numberlong
verwendet, um zu demonstrieren, wie die Befehle mongoexport
und mongoimport
die strikte Modusdarstellung verwenden, um Informationen zu verwalten:
use test
db.traffic. insert( { _id: 1, volume: NumberLong ('2980001'), date: new Date() } )
Die an data_numberlong
gelieferte Eingabe muss in Anführungszeichen gesetzt werden, um Genauigkeitsverluste zu vermeiden. Wenn Sie nun mongoexport
verwenden, um die Daten zu exportieren, erhalten wir Folgendes:
mongoexport -- db test --collection traffic -- out traffic.json
Um die Typinformationen beizubehalten, werden die exportierten Daten in einer strikten Modusdarstellung angezeigt:
{ "_id" : 1, "volume" : { "$numberLong" : "2980001" }, "date" : { "$date" : "2014-03-13T13:47:42. 483-0400" } }
Importieren Sie Daten in MongoDB mit dem Befehl mongoimport
Wie bereits erwähnt, kann mongoimport
JSON-, CSV- oder TSV-Dateien importieren. Wir haben die Verfahren zum Importieren von Daten aus JSON-, CSV- oder TSV-Dateien zur Verdeutlichung und einfachen Navigation in drei Teile unterteilt.
Bevor Sie mit diesen Abschnitten fortfahren, vergewissern Sie sich, dass Ihre MongoDB-Instanz mit der Windows-, macOS- oder Ubuntu-Anwendung mongoimport
verbunden ist. Obwohl es einige Möglichkeiten gibt, mongoimport
mit Ihrer MongoDB-Datenbank zu verbinden, empfehlen wir die Verwendung der –uri
-Option, die wie folgt aussieht:
mongoimport --uri 'mongodb+srv: // mycluster-ABCDE.azure.mongodb. net/test?retryWrites=true&w=majority'
--username='USERNAME'
--password='PASSWORD'
Database Deployments > Connect
, um Ihre Atlas-Verbindungszeichenfolge abzurufen.Sie müssen Ihren eigenen URI erstellen, wenn Sie Atlas Deployment nicht verwenden. Wenn Sie sich mit einem einzigen server\
verbinden, sieht Ihre URL so aus: mongodb://your.server. Gastgeber. name:port/
, und wenn Sie ein replicaset\
ausführen und sich mit verschiedenen Hostnamen verbinden, sieht Ihr URI so aus: mongodb://username:password @host1: port,host2:port/?replicaSet=replicasetname
.
Importieren Sie JSON-Dateien in MongoDB mit dem Befehl mongoimport
Verwenden Sie den folgenden Code, um JSON-Dateien aus einer Sammlung zu importieren:
mongoimport --db DB_Name --c collection_ Name --type= json --
file Name-of-the-file-to-import
Wo,
DB_Name
stellt den Namen der Datenbank dar, die die SammlungCollection_Name
enthält.type
spezifiziert den Dateityp JSON (Optionales Feld).- Name und Pfad der zu importierenden/wiederherzustellenden JSON-Datei werden durch
name-of-file-to-import
repräsentiert.
Sie können den obigen Code alternativ kompakter schreiben als:
mongoimport -d DB_NAME - c COLLECTION _name --file Name-of-the-file-to-import
Wenn Sie vorhandene Sammlungen mit demselben Namen wie die, die Sie erstellen/importieren möchten, löschen möchten, können Sie das Flag –drop
mit dem Befehl mongoimport
verwenden.
mongoimport -d DB_NAME -c collect._name --drop --file Name-of-file-to-import
Sie können den MongoDB-Befehl mongoimport
verwenden, um Ihre Host- oder Portnummer beim Importieren von JSON-Daten zu ändern.
mongoimport --host 123. 123. 123.1 --port 4567 -d DB _ NAME -c collection _name --file Name-of-the-file-to-import
Standardmäßig verbindet sich mongoimport
mit einem laufenden Mongo auf localhost auf Port 27017.
Importieren Sie CSV-Dateien in MongoDB mit dem Befehl mongoimport
Sie können den Befehl mongoimport
verwenden, um CSV-Dateien in eine Sammlung mit der Kopfzeilenoption zu importieren. Das Kopfzeilenargument weist den Befehl mongoimport
jedoch an, die erste Zeile nicht als Dokument zu importieren, da sie Feldnamen statt Daten enthält.
Verwenden Sie den folgenden Code, um eine Sammlung aus einer CSV-Datei zu importieren:
mongoimport --db DB_Name --collection collect._Name --type=csv --
headerline --file=Name-of-file-to-import
Wo,
DB_Name
stellt den Namen der Datenbank dar, die die SammlungCollection_Name
enthält.type
spezifiziert den Dateityp CSV (Optionales Feld).Headline
beschreibt den Befehlmongoimport
, um den ersten Datensatz der CSV-Datei(en) als Feldnamen zu übernehmen.Name der zu importierenden Datei
steht für den Namen und den Pfad der zu importierenden/wiederherzustellenden CSV-Datei
Importieren Sie TSV-Dateien in MongoDB mit dem Befehl mongoimport
Im Vergleich zu CSV-Dateiformaten sind TSV-Dateien grundsätzlich gleich. Unabhängig davon, ob Sie die Windows-Anwendung mongoimport
oder eine andere verwenden, können Sie TSV-Dateien mit der gleichen Methode wie CSV-Dateien importieren.
Es gibt nur einen winzigen Unterschied: Anstatt –type=csv,
zu verwenden, können Sie die Option –type=tsv
verwenden, um mongoimport
über das neue Format zu informieren.