Erfahren Sie, was MongoDB, die Installationsanleitung und die grundlegende Bedienung sind.

MongoDB NoSQL ist mehr denn je im Trend. Haben Sie das nötige Verständnis dafür?

Keine Sorge, wenn nicht, wird Ihnen das Folgende helfen.

Einführung

Mit dem Paradigmenwechsel bei den Websites hin zu dynamischen Inhalten stieg die Nachfrage nach No-SQL-Datenbanken. Dies führte zur Entstehung zahlreicher No-SQL-Datenbanken wie MongoDB.

mongodb

MongoDB ist eine dokumentenbasierte Datenbank, die Daten in Form von JSON-Dokumenten mit einer automatisch generierten Kennung für jedes Dokument speichert und als No-SQL-Datenbank eingestuft wird.

Eine No-SQL-Datenbank ist eine Datenbank, bei der die Tabellenstruktur im Gegensatz zu strukturierten SQL-Datenbanken nicht festgelegt ist. MongoDB speichert die Daten in Form von JSON-Strings, unabhängig von der Anzahl der Attribute oder den Namen der Attribute in einer bestimmten Spalte.

Dies ermöglicht es den Entwicklern, schnell Änderungen an den Entitäten vorzunehmen, ohne dass Änderungen auf der Datenbankebene erforderlich sind.

Installieren von MongoDB

MongoDB ist, wie jede andere Datenbank auch, in mehreren Varianten erhältlich, die sich nach den Bedürfnissen der Entwickler richten. Die Varianten sind unten aufgelistet und können unter diesem Linkverwendet oder heruntergeladen werden

  • MongoDB Atlas – Datenbank als Dienst
  • Community Server – Kostenlose Nutzung für die Entwicklergemeinschaft
  • MongoDB Enterprise Edition – Die kommerzielle Version mit zusätzlichen Funktionen

Jede dieser Versionen ist vollständig mit jedem Betriebssystem kompatibel. Um mit der Installation eines Community Servers zu beginnen, laden Sie die entsprechende Installationsdatei für Ihr Betriebssystem herunter.

Der Installationsvorgang ist für jedes Betriebssystem leicht unterschiedlich, daher gehen wir die Installation für jedes Betriebssystem einzeln durch.

Installation unter MacOS

So installieren Sie MongoDB unter MacOS. Laden Sie das .tgz-Archiv herunter, das die erforderlichen Binärdateien enthält. Wenn Sie die Datei entpacken, sollten Sie eine Reihe von Binärdateien sehen, die sich im Ordner bin befinden.

  • Verschieben Sie den bin-Ordner an den gewünschten Ort
  • Öffnen Sie ein Terminal und wechseln Sie in das oben erwähnte bin-Verzeichnis
  • Führen Sie den folgenden Befehl aus, um eine Datenbank am gewünschten Ort zu erstellen.
$ ./mongod --dbpath /pfad-zum-wunschverzeichnis/

Ersetzen Sie im obigen Befehl den Pfad zum Verzeichnis durch den von Ihnen gewünschten Pfad und der Server wird gestartet, sobald der Befehl ausgeführt wird.

Installieren unter Windows

Das MongoDB Download Center bietet ein ausführbares .msi-Paket für die Installation von MongoDB unter Windows. Die Installation unter Windows ist recht einfach und kann mit ein paar Befehlen durchgeführt werden, sobald das Setup heruntergeladen wurde.

  • Führen Sie die folgenden Befehle aus, um MongoDB auf einem Windows-PC/Server zu installieren.
> cd /setup-ordner/
> msiexec.exe /q /i .msi ^
INSTALLLOCATION="C:Program FilesMongoDB" ^
ADDLOCAL="MonitoringTools,ImportExportTools,MiscellaneousTools"

Mit den obigen Befehlen gelangen Sie in das entsprechende Verzeichnis und führen das Setup zur Installation am angegebenen Ort aus. Nach der Installation müssen Sie den Standardpfad zum Speichern der Datenbank für MongoDB konfigurieren.

Der folgende Befehl hilft Ihnen bei dieser Konfiguration.

> md dbdata

Der obige Befehl erstellt einen Ordner db/data in dem Verzeichnis, auf das die Eingabeaufforderung gerade zeigt. Falls Sie die Datenbank erneut konfigurieren müssen, können Sie mongod.exe mit dem Argument dbpath wie unten gezeigt verwenden:

>"C:ProgrammeMongoDBbinmongod.exe" --dbpath d:tutorialmongodbdata

Installieren unter Linux

Ähnlich wie die macOS-Downloads sind auch die MongoDB-Varianten für Linux in Form von archivierten Binärdateien verfügbar. Das Verfahren zur Installation von MongoDB ist recht ähnlich.

  • Verschieben Sie die Binärdateien an den gewünschten Ort
  • Öffnen Sie das Terminal in diesem Ordner
  • Führen Sie den folgenden Befehl mit dem gewünschten DB-Speicherort aus
$ ./mongod --dbpath /pfad-zum-wunschverzeichnis/

Erstellen der ersten Sammlung

MongoDB speichert die Daten in Form von JSON-Dokumenten. Eine Gruppe solcher Dokumente wird in MongoDB als Sammlung bezeichnet. Eine Sammlung entspricht also einer Tabelle in einer relationalen Datenbank, während ein Dokument einem Datensatz entspricht.

Um Dokumente zu speichern, müssen wir zunächst eine Sammlung erstellen. Das Spannende an einer NoSQL-Datenbank ist, dass Sie im Gegensatz zu einer SQL-Datenbank die Spaltennamen oder Datentypen nicht angeben müssen.

Der erste Schritt zur Erstellung einer Sammlung ist die Erstellung einer Datenbank. Um eine Datenbank zu erstellen und sich über die Kommandozeile mit ihr zu verbinden, führen Sie den folgenden Befehl vom Home-Verzeichnis der MongoDB-Installation aus.

$ ./bin/mongo tutorial

Mit diesem Befehl starten Sie die Datenbankverbindung und verbinden sich gleichzeitig mit der Tutorial-Datenbank. Er zeigt eine Reihe von Zeilen im Protokoll an, um anzuzeigen, dass die Befehlszeile eine Verbindung zur MongoDB-Datenbank hergestellt hat.

Nachfolgend finden Sie ein Beispiel für die Befehlszeile, damit Sie sich ein besseres Bild davon machen können.

Screen-Shot-2018-05-22-at-9.07.12-PM

  • Um eine Sammlung zu erstellen, führen Sie den folgenden Befehl aus:
$ > db.createCollection('firstCollection');

Auf diese Weise wird eine leere Sammlung erstellt. Der nächste Schritt ist das Einfügen von Daten und die Verarbeitung der Datensätze über die MongoDB-Befehlszeile.

Einfügen eines Dokuments in die Sammlung

Wie bereits erwähnt, ist es möglich, fast jedes JSON in jede MongoDB-Sammlung einzufügen.

Beginnen wir mit dem Einfügen des ersten JSON-Dokuments in die oben angelegte Sammlung firstCollection.

> db.firstCollection.insertOne({Name:'Abhishek',skill:'MongoDB'});

Der obige Befehl fügt ein einzelnes JSON-Dokument in die firstCollection ein. Das Gleiche können Sie mit dem folgenden Befehl überprüfen:

> db.firstCollection.find();

Der obige Befehl kann je nach Variante der Funktion find() mehrfach verwendet werden. Wenn keine Argumente angegeben werden, wie es beim obigen Befehl der Fall ist, holt er alle verfügbaren Dokumente aus der Sammlung.

Sie können einen weiteren Datensatz einfügen und das Gleiche versuchen. Die Ausgabe des obigen Befehls würde dann ähnlich aussehen wie die unten gezeigte:

> db.firstCollection.find();
{ "_id" : ObjectId("5b043a32c29a7184535e783a"), "name" : "Abhishek", "skill" : "MongoDB" }
{ "_id" : ObjectId("5b05b4f0c29a7184535e783b"), "name" : "GeekFlare", "skill" : "Java,MongoDB,NodeJS" }

Wie Sie sehen können, werden zwei verfügbare Datensätze angezeigt. Mit der Funktion find() können Sie die Dokumente ganz einfach nach bestimmten Parametern filtern. Lassen Sie uns das Dokument anhand des Attributs name filtern.

Der Filterprozess ist einfach und kann anhand des folgenden Befehls nachvollzogen werden:

db.firstCollection.find({Name:'Abhishek'});
{ "_id" : ObjectId("5b043a32c29a7184535e783a"), "name" : "Abhishek", "skill" : "MongoDB" }

Der Filter kann auch mit mehreren Attributen im JSON verwendet werden. Obwohl es möglich ist, der Abfrage eine beliebige Anzahl von Parametern hinzuzufügen, besteht die Einschränkung dieses Ansatzes darin, dass nur der genaue Wert der Attribute abgeglichen wird.

Filtern von Datensätzen mit Regex

Um eine MongoDB-Entsprechung einer MySQL-ähnlichen Klausel auszuführen, verwendet MongoDB Regex. Regex ist eine Reihe von Zeichen, die ein Muster bilden, das übereinstimmt. Die Regex-Literale sind ähnlich wie die in Javascript verwendeten.

Für die aktuelle Kollektion werden wir versuchen, die Daten zu holen, indem wir ein Muster für das Attribut “Fähigkeit” abgleichen. Der folgende Befehl ruft die Liste der Personen mit der Fähigkeit MongoDB ab. Es werden also zwei Datensätze abgerufen, da beide die Zeichenfolge MongoDB enthalten.

> db.firstCollection.find({Skill:/.*MongoDB.*/});
{ "_id" : ObjectId("5b043a32c29a7184535e783a"), "name" : "Abhishek", "skill" : "MongoDB" }
{ "_id" : ObjectId("5b05b4f0c29a7184535e783b"), "name" : "GeekFlare", "skill" : "Java,MongoDB,NodeJS" }
> db.firstCollection.find({skill:/.*Java.*/});
{ "_id" : ObjectId("5b05b4f0c29a7184535e783b"), "name" : "GeekFlare", "skill" : "Java,MongoDB,NodeJS" }

Der obige Code zeigt das Ergebnis von zwei verschiedenen Zeichenketten in der Regex-Form an. Die erste Abfrage findet die Liste eines Dokuments, in dem das Attribut “skill” das Schlüsselwort “MongoDB” enthält, während die andere Abfrage nur Personen findet, die sich mit Java auskennen.

Die nächste Herausforderung bei der Abfrage anhand von Kriterien ist die Abfrage mit einer ODER- oder UND-Bedingung.

Komplexe Abfragen in MongoDB

Wie aus den obigen Befehlen ersichtlich ist, funktionieren MongoDB where-Klauseln auf JSON. Auch das Kombinieren von Bedingungen ist von JSON selbst abhängig. MongoDB bietet Operatoren wie $or, $and sowie $not, um die entsprechenden Abfrageoperationen durchzuführen.

Lassen Sie uns versuchen, die Liste der Dokumente zu erhalten, deren Attribut name den Wert Abhishek oder skill den Wert Java enthält.

> db.firstCollection.find({$or: [{Name:'Abhishek'},{Skill:/.*Java.*/}]});
{ "_id" : ObjectId("5b043a32c29a7184535e783a"), "name" : "Abhishek", "skill" : "MongoDB" }
{ "_id" : ObjectId("5b05b4f0c29a7184535e783b"), "name" : "Geekflare", "skill" : "Java,MongoDB,NodeJS" }

Wie Sie sehen können, werden beide Datensätze abgefragt. Sie können versuchen, das Attribut name als Geekflare zu verwenden, um die Änderung zu sehen. Es wird nur das Dokument mit drei Fähigkeiten und dem Namen Geekflare angezeigt.

In ähnlicher Weise können Sie den Operator $und mit einem JSON-Array von Bedingungen verwenden, wie oben gezeigt.

Für die nächste Gruppe von Operatoren müssen wir eine weitere Sammlung erstellen und ihr mit den folgenden Befehlen einige Datensätze hinzufügen.

> db.createCollection('studentmarks');
{ "ok" : 1 }
> db.studentmarks.insertMany([{Name:'A',marks:20},{Name:'B',marks:25},{Name:'C',marks:22},{Name:'D',marks:30}]);
{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("5b06e7b5c29a7184535e783c"),
		ObjectId("5b06e7b5c29a7184535e783d"),
		ObjectId("5b06e7b5c29a7184535e783e"),
		ObjectId("5b06e7b5c29a7184535e783f")
	]
}

Die nächste Gruppe von Operatoren, die wir verwenden würden, sind Vergleichsoperatoren in der Abfrage. Um Werte anhand von Kriterien wie ” kleiner als “, ” größer als” oder ” ungleich” zu vergleichen, verwenden wir die entsprechenden Operatoren in dem übergebenen Wert.

Ein Beispiel für die Suche nach einer Liste von Studenten, deren Noten größer als 22 sind, sehen Sie unten.

db.studentmarks.find({marks:{$gt:22}});
{ "_id" : ObjectId("5b06e7b5c29a7184535e783d"), "name" : "B", "marks" : 25 }
{ "_id" : ObjectId("5b06e7b5c29a7184535e783f"), "name" : "D", "marks" : 30 }

Das $gt steht hier für größer als in den Kriterien. Es werden also die Dokumente mit mehr als 22 Punkten angezeigt. In ähnlicher Weise gibt es noch weitere Operatoren, die verwendet werden können. Sie sind unten aufgeführt.

Operator Verwendung Beispiel
$eq Prüfen, ob der Wert gleich ist {Marken:{$eq:20}}
$lt Prüfen Sie, ob der Wert kleiner ist als {markierungen:{$lt:20}}
$gte Prüfen Sie, ob der Wert größer oder gleich ist als {markierungen:{$gte:22}}
$lte Prüfen Sie, ob der Wert kleiner als oder gleich ist {marks:{$lte:22}}
$ne Prüfen Sie, ob der Wert nicht gleich ist mit {marks:{$ne:22}}
$in Prüfen Sie, ob der Wert gleich einem der Werte aus dem Array ist {marks:{$in:[20,22]}}
$nin Prüfen Sie, ob der Wert nicht gleich einem Wert aus dem Array ist {marks:{$nin:[22,25]}}

Entdecken Sie hier weitere MongoDB-Befehle.

GUI für MongoDB

In der obigen Diskussion haben wir eine Befehlszeile verwendet, um unsere Abfragen in MongoDB auszuführen.

Die Verwendung der Befehlszeile kann eine Herausforderung sein, wenn es um komplexe Abfragen und größere Mengen an Daten geht. Um die Anzeige der Daten und die Ausführung der Abfragen zu erleichtern, stellt MongoDB Ihnen ein hervorragendes GUI-Tool namens MongoDB Compass zur Verfügung.

MongoDB Compass kann ganz einfach von der MongoDB-Downloadseite heruntergeladen werden. Sobald Sie MongoDB Compass heruntergeladen und installiert haben, starten Sie die Anwendung und Sie werden von einem Bildschirm ähnlich dem unten gezeigten begrüßt.

MongoDBCompass

Da Sie davon ausgehen, dass der MongoDB-Server bereits läuft, klicken Sie auf Verbinden mit den Standardangaben. Sie sollten nun eingeloggt sein und die Liste der verfügbaren Datenbanken sehen.

Klicken Sie auf die Tutorial-Datenbank, um die Liste der Sammlungen in der Tutorial-Datenbank zu sehen. Wie unten gezeigt, wird die Liste der verfügbaren Sammlungen in der Tutorial-Datenbank angezeigt.

Screen-Shot-2018-05-26-at-12.49.55-AM-e1527276073795

Wenn Sie auf die Sammlung klicken, wird die Liste der Dokumente mit den notwendigen Steuerelementen angezeigt, um die Datensätze mithilfe von JSON zu filtern und die Dokumente je nach Wunsch im JSON- oder Tabellenformat anzuzeigen.

Die grafische Benutzeroberfläche macht auch das Hinzufügen eines Dokuments einfacher. Klicken Sie einfach auf die Schaltfläche Dokument einfügen in dem unten gezeigten Bildschirm. Es öffnet sich ein kleines Dialogfeld, in dem Sie nach den Dokumentdetails und einer automatisch generierten Dokument-ID gefragt werden.

MongoDBDocuments

Die grafische Benutzeroberfläche vereinfacht viele Vorgänge, die über die MongoDB-Befehlszeilenschnittstelle schwierig durchzuführen wären.

Es gibt noch weitere NoSQL-Clients, die Sie erkunden können.

Fazit

Wir haben das Wesen von NoSQL mit einer Vielzahl von Beispielen erfasst und die Installation verstanden, wie sich Dokumente von einem typischen relationalen Datenbankdatensatz unterscheiden. Sie können auch diesen Online-Kurs MongoDB von Grund auf lernen besuchen.

Und wenn Sie ein Entwickler sind, dann könnte Sie dieser Kurs interessieren.