Importieren Sie eine JSON-Datei in MongoDB

Tahseen Tauseef 20 Juni 2023
  1. Was ist MongoDB
  2. den mongoimport-Befehl
  3. Importieren Sie Daten in MongoDB mit dem Befehl mongoimport
  4. Importieren Sie JSON-Dateien in MongoDB mit dem Befehl mongoimport
  5. Importieren Sie CSV-Dateien in MongoDB mit dem Befehl mongoimport
  6. Importieren Sie TSV-Dateien in MongoDB mit dem Befehl mongoimport
Importieren Sie eine JSON-Datei in MongoDB

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'
Note
Wenn Sie MongoDB Atlas Deployment verwenden, gehen Sie zu 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,

  1. DB_Name stellt den Namen der Datenbank dar, die die Sammlung Collection_Name enthält.
  2. type spezifiziert den Dateityp JSON (Optionales Feld).
  3. 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,

  1. DB_Name stellt den Namen der Datenbank dar, die die Sammlung Collection_Name enthält.
  2. type spezifiziert den Dateityp CSV (Optionales Feld).
  3. Headline beschreibt den Befehl mongoimport, um den ersten Datensatz der CSV-Datei(en) als Feldnamen zu übernehmen.
  4. 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.