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, werden Ihnen die folgenden Informationen helfen.
Einführung
Die Website vollzieht einen Paradigmenwechsel hin zu dynamischer Inhaltstieg die Nachfrage nach No-SQL-Datenbanken. Dies führte zu zahlreichen No-SQL-Datenbanken wie MongoDB.
MongoDB wird als No-SQL-Datenbank eingestuft und ist eine dokumentenbasierte Datenbank, die Daten in Form von JSON-Dokumenten mit einer automatisch generierten Kennung für jedes Dokument speichert.
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 einer JSON-Zeichenkette, unabhängig von der Anzahl der Attribute oder Namen der Attribute in einer bestimmten Spalte.
So können die Entwickler schnell Änderungen an den Entitäten vornehmen, ohne dass Änderungen auf der Datenbankebene erforderlich sind.
Installieren von MongoDB
MongoDB ist, wie jede andere Datenbank auch, in mehreren Varianten verfügbar, die sich nach den Bedürfnissen der Entwickler richten. Die Varianten sind unten aufgelistet und können verwendet oder von dieser Seite heruntergeladen werden Link
- MongoDB Atlas - Datenbank als Dienst
- Community Server - Kostenlose Nutzung für die Entwicklergemeinschaft
- MongoDB Enterprise Edition - Die kommerzielle Version mit zusätzlichen Funktionen
Jedes dieser Systeme ist mit jedem Betriebssystem voll kompatibel. Um mit der Installation eines Community-Servers zu beginnen, laden Sie die entsprechende Installationsdatei für Ihr Betriebssystem herunter.
Der Installationsprozess ist für jedes Betriebssystem leicht unterschiedlich, daher werden wir die Installation für jedes Betriebssystem separat durchführen.
Installieren 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 in der Lage sein, eine Reihe von Binärdateien zu sehen, die sich im Ordner bin Ordner.
- 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 /path-to-desired-directory/
Ersetzen Sie im obigen Befehl den Pfad zum Verzeichnis durch den gewünschten Pfad, und der Server wird gestartet, sobald der Befehl ausgeführt wird.
Installieren unter Windows
Das MongoDB Download Center bietet eine ausführbare Datei .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-folder/
> msiexec.exe /q /i .msi ^
INSTALLLOCATION="C:Program FilesMongoDB" ^
ADDLOCAL="MonitoringTools,ImportExportTools,MiscellaneousTools"
Mit den oben genannten Befehlen gelangen Sie in das entsprechende Verzeichnis und führen das Setup für die Installation an dem angegebenen Ort aus. Nach der Installation müssen Sie den Standard-Datenbank-Speicherpfad für MongoDB konfigurieren.
Der unten stehende Befehl hilft Ihnen bei der Konfiguration desselben.
> md dbdata
Der obige Befehl erstellt einen Ordner db/data in dem Verzeichnis, auf das die Eingabeaufforderung derzeit verweist. Falls Sie die Datenbank wieder neu konfigurieren müssen, können Sie die mongod.exe mit dem Befehl dbpath wie unten gezeigt:
>"C:Program FilesMongoDBbinmongod.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. Der Prozess zur Installation von MongoDB ist recht ähnlich.
- Verschieben Sie die Binärdateien an den gewünschten Ort
- Öffnen Sie das Terminal im Ordner
- Führen Sie den folgenden Befehl mit dem gewünschten DB-Speicherort aus
$ ./mongod --dbpath /path-to-desired-directory/
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 anlegen. Das Spannende an einer NoSQL-Datenbank ist, dass Sie im Gegensatz zur SQL-Datenbank die Spaltennamen oder Datentypen nicht angeben müssen.
Der erste Schritt zur Erstellung einer Sammlung besteht darin, eine Datenbank zu erstellen. Um eine Datenbank zu erstellen und sich mit ihr über die Befehlszeile zu verbinden, führen Sie den folgenden Befehl vom Home-Verzeichnis der MongoDB-Installation aus.
$ ./bin/mongo tutorial
Dieser Befehl wird verwendet, um die Datenbankverbindung zu starten und sich gleichzeitig mit der Tutorial-Datenbank zu verbinden. Er zeigt eine Reihe von Zeilen im Protokoll an, um anzuzeigen, dass die Befehlszeile eine Verbindung mit der MongoDB-Datenbank hergestellt hat.
Nachfolgend finden Sie ein Beispiel für eine Befehlszeile, damit Sie sich ein besseres Bild davon machen können.
- 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 firstCollection Sammlung, die oben erstellt wurde.
> db.firstCollection.insertOne({name:'Abhishek',skill:'MongoDB'});
Der obige Befehl fügt ein einzelnes JSON-Dokument in die Datei firstCollection. Das Gleiche kann mit dem unten stehenden Befehl überprüft werden:
> db.firstCollection.find();
Der obige Befehl hat mehrere Verwendungszwecke, abhängig von der Variation des find()
Funktion. Wenn keine Argumente angegeben werden, wie es bei dem obigen Befehl der Fall ist, werden alle verfügbaren Dokumente aus der Sammlung geholt.
Sie können einen weiteren Datensatz einfügen und dasselbe versuchen. Die Ausgabe des obigen Befehls wäre dann ähnlich 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. Die find()
Funktion kann leicht verwendet werden, um die Dokumente nach bestimmten Parametern zu 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 übereinstimmt.
Filtern von Datensätzen mit Regex
So führen Sie ein MongoDB-Äquivalent zu einem MySQL wie Klausel, verwendet MongoDB regex. Regex ist eine Reihe von Zeichen, die ein Muster bilden, das übereinstimmt. Die Regex-Literale sind ähnlich wie die die in Javascript verwendet werden.
Für die aktuelle Auflistung versuchen wir, die Daten durch Abgleich mit einem Muster für das Attribut "Fähigkeit" abzurufen. 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 ruft die Liste eines Dokuments ab, in dem das Attribut "skill" das Schlüsselwort "MongoDB" enthält, während die andere nur Personen mit Java-Kenntnissen abruft.
Die nächste Herausforderung bei der Abfrage nach Kriterien ist die Abfrage mit einer ODER- oder UND-Bedingung.
Komplexe Abfragen in MongoDB
Wie aus den obigen Befehlen ersichtlich ist, arbeiten MongoDB-Wo-Klauseln mit JSON. Der Prozess der Kombination von Bedingungen ist ebenfalls von JSON selbst abhängig. MongoDB bietet Operatoren wie $or, $and sowie $not, um die entsprechenden Abfrageoperationen durchzuführen.
Versuchen wir, 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 abgerufen. Sie könnten versuchen, das Attribut name als Geekflare zu verwenden und die Änderung zu sehen. Es wird nur das Dokument mit drei Fähigkeiten und dem Namen Geekflare angezeigt.
In ähnlicher Weise ist es möglich, Folgendes zu verwenden $and
Operator mit einem JSON-Array von Bedingungen 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. Zum Vergleichen von Werten anhand von Kriterien wie weniger als oder größer als oder nicht gleichverwenden wir die entsprechenden Operatoren in dem Wert, den wir übergeben.
Das folgende Beispiel zeigt, wie man eine Liste von Schülern mit Noten über 22 erhält.
db.studentmarks.find({marks:{$gt:22}}); { "_id" : ObjectId("5b06e7b5c29a7184535e783d"), "name" : "B", "marks" : 25 } { "_id" : ObjectId("5b06e7b5c29a7184535e783f"), "name" : "D", "marks" : 30 }
Die $gt
zeigt hier an größer als in den Kriterien. Es werden also die Dokumente angezeigt, die mehr als 22 Punkte haben. In ähnlicher Weise gibt es weitere Operatoren, die verwendet werden können. Sie sind im Folgenden aufgeführt.
Betreiber | Verwenden Sie | Beispiel |
---|---|---|
$eq | Prüfen, ob der Wert gleich ist | {Marken:{$eq:20}} |
$lt | Prüfen, ob der Wert kleiner ist als | {Marken: {$lt:20}} |
$gte | Prüfen, ob der Wert größer oder gleich ist | {marks:{$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 | {Marken:{$ne:22}} |
$in | Prüfen, ob der Wert gleich einem der Werte aus dem Array ist | {marks:{$in:[20,22]}} |
$nin | Prüfen, ob Wert nicht gleich einem Wert aus dem Array ist | {marks:{$nin:[22,25]}} |
Mehr erforschen MongoDB-Befehle hier.
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 bei komplexen Abfragen und größeren Datenmengen eine Herausforderung darstellen. Um die Anzeige der Daten und die Ausführung der Abfragen zu erleichtern, bietet MongoDB ein hervorragendes GUI-Tool namens MongoDB Compass.
Der MongoDB-Kompass kann einfach von der MongoDB-Download-Seite. Sobald Sie MongoDB Compass heruntergeladen und installiert haben, starten Sie die Anwendung und Sie werden von einem Bildschirm ähnlich dem unten gezeigten begrüßt.
Da Sie den MongoDB-Server bereits eingerichtet haben, klicken Sie auf Verbinden mit den Standardangaben. Sie sollten eingeloggt sein und die Liste der verfügbaren Datenbanken sehen.
Klicken Sie auf die Lehrgangsdatenbank, um die Liste der Sammlungen in der Lehrgangsdatenbank zu sehen. Wie unten gezeigt, wird die Liste der verfügbaren Sammlungen in der Tutorial-Datenbank angezeigt.
Wenn Sie auf die Sammlung klicken, wird die Liste der Dokumente mit den erforderlichen Steuerelementen angezeigt, um die Datensätze mithilfe von JSON zu filtern, und es besteht die Möglichkeit, die Dokumente je nach Bedarf in einem JSON- oder Tabellenformat anzuzeigen.
Die grafische Benutzeroberfläche macht das Hinzufügen eines Dokuments noch einfacher. Sie brauchen nur auf die Schaltfläche Dokument einfügen im unten gezeigten Bildschirm zu klicken. Es öffnet sich ein kleines Dialogfeld, in dem Sie nach den Dokumentdetails mit einer automatisch generierten Dokument-ID gefragt werden.
Die grafische Benutzeroberfläche vereinfacht viele Vorgänge, die über die MongoDB-Befehlszeilenschnittstelle nur schwer durchzuführen sind.
Es gibt mehr NoSQL-Client können Sie erkunden.
Schlussfolgerung
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 sich auch auf diese MongoDB von Grund auf lernen Online-Kurs.
Und wenn Sie ein Entwickler sind, dann könnte Sie folgendes interessieren diese.