Erste Schritte mit MongoDB in 10 Minuten
von Navindu Jayatilake
MongoDB ist eine umfangreiche dokumentenorientierte NoSQL-Datenbank.
Wenn Sie ein absoluter Anfänger in NoSQL sind, empfehle ich Ihnen, einen kurzen Blick auf meinen zuvor veröffentlichten NoSQL-Artikel zu werfen.
Heute wollte ich einige grundlegende Dinge über MongoDB-Befehle wie Abfragen, Filtern von Daten, Löschen, Aktualisieren usw. mitteilen.
Okay, genug der Rede, lass uns an die Arbeit gehen!
Konfiguration ?
Um mit MongoDB arbeiten zu können, müssen Sie zuerst MongoDB auf Ihrem Computer installieren. Besuchen Sie dazu das offizielle Download-Center und laden Sie die Version für Ihr spezifisches Betriebssystem herunter. Hier habe ich Windows verwendet.
Nachdem Sie das MongoDB Community Server Setup heruntergeladen haben, durchlaufen Sie einen ’nächsten nach dem nächsten‘ Installationsprozess. Gehen Sie anschließend zu dem Laufwerk C, auf dem Sie MongoDB installiert haben. Gehen Sie zu Programme und wählen Sie das MongoDB-Verzeichnis aus.
C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin
Im Verzeichnis bin finden Sie einige interessante ausführbare Dateien.
- mongod
- mongo
Lassen Sie uns über diese beiden Dateien sprechen.mongod steht für „Mongo Daemon“. mongod ist ein Hintergrundprozess, der von MongoDB verwendet wird. Der Hauptzweck von Mongod besteht darin, alle MongoDB-Serveraufgaben zu verwalten. Zum Beispiel das Annehmen von Anforderungen, das Antworten auf den Client und die Speicherverwaltung.
mongo ist eine Befehlszeilenshell, die mit dem Client interagieren kann (z. B. Systemadministratoren und Entwickler).
Nun wollen wir sehen, wie wir diesen Server zum Laufen bringen können. Um dies unter Windows zu tun, müssen Sie zuerst einige Verzeichnisse in Ihrem Laufwerk C erstellen. Öffnen Sie Ihre Eingabeaufforderung in Ihrem Laufwerk C und gehen Sie wie folgt vor:
C:\> mkdir data/dbC:\> cd dataC:\> mkdir db
Der Zweck dieser Verzeichnisse ist MongoDB benötigt einen Ordner zum Speichern aller Daten. Der standardmäßige Datenverzeichnispfad von MongoDB lautet /data/db
auf dem Laufwerk. Daher ist es notwendig, dass wir diese Verzeichnisse so bereitstellen.
Wenn Sie den MongoDB-Server ohne diese Verzeichnisse starten, wird wahrscheinlich der folgende Fehler angezeigt:
Nachdem Sie diese beiden Dateien erstellt haben, gehen Sie erneut zu dem Ordner bin, den Sie in Ihrem Mongodb-Verzeichnis haben, und öffnen Sie Ihre Shell darin. Führen Sie den folgenden Befehl aus:
mongod
Voilà! Jetzt ist unser MongoDB-Server einsatzbereit! ?
Um mit diesem Server arbeiten zu können, benötigen wir einen Mediator. Öffnen Sie also ein anderes Befehlsfenster im Bind-Ordner und führen Sie den folgenden Befehl aus:
mongo
Nachdem Sie diesen Befehl ausgeführt haben, navigieren Sie zu der Shell, in der wir den Mongod-Befehl ausgeführt haben (der unser Server ist). Am Ende wird die Meldung ‚Verbindung akzeptiert‘ angezeigt. Das bedeutet, dass unsere Installation und Konfiguration erfolgreich ist!
Einfach in der Mongo-Shell ausführen:
db
Umgebungsvariablen einrichten
Um Zeit zu sparen, können Sie Ihre Umgebungsvariablen einrichten. In Windows geschieht dies, indem Sie den folgenden Menüs folgen:
Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit
Kopieren Sie einfach den Pfad unseres bin-Ordners und klicken Sie auf OK! In meinem Fall ist es C:\Program Files\MongoDB\Server\4.0\bin
Jetzt bist du fertig!
Arbeiten mit MongoDB
Es gibt eine Reihe von GUIs (Graphical User Interface), um mit MongoDB Server wie MongoDB Compass, Studio 3T und so weiter zu arbeiten.
Sie bieten eine grafische Oberfläche, sodass Sie problemlos mit Ihrer Datenbank arbeiten und Abfragen durchführen können, anstatt eine Shell zu verwenden und Abfragen manuell einzugeben.
Aber in diesem Artikel werden wir die Eingabeaufforderung verwenden, um unsere Arbeit zu erledigen.
Jetzt ist es Zeit für uns, in MongoDB-Befehle einzutauchen, die Ihnen bei Ihren zukünftigen Projekten helfen werden.
- Öffnen Sie Ihre Eingabeaufforderung und geben Sie
mongod
ein, um den MongoDB-Server zu starten.
2. Öffnen Sie eine andere Shell und geben Sie mongo
ein, um eine Verbindung zum MongoDB-Datenbankserver herzustellen.
1. Suchen der aktuellen Datenbank, in der Sie sich befinden
db
Dieser Befehl zeigt die aktuelle Datenbank an, in der Sie sich befinden. test
ist die anfängliche Datenbank, die standardmäßig geliefert wird.
2. Datenbanken auflisten
show databases
Ich habe derzeit vier Datenbanken. Sie sind: CrudDB
admin
config
und local
.
3. Gehe zu einer bestimmten Datenbank
use <your_db_name>
Hier bin ich in die local
Datenbank umgezogen. Sie können dies überprüfen, wenn Sie den Befehl db
, um den aktuellen Datenbanknamen auszudrucken.
4. Erstellen einer Datenbank
Mit RDBMS (Relational Database Management Systems) haben wir Datenbanken, Tabellen, Zeilen und Spalten.
In NoSQL-Datenbanken wie MongoDB werden Daten jedoch im BSON-Format (einer binären Version von JSON) gespeichert. Sie werden in Strukturen gespeichert, die als „Sammlungen“ bezeichnet werden.
In SQL-Datenbanken ähneln diese Tabellen.
Okay, lassen Sie uns darüber sprechen, wie wir eine Datenbank in der Mongo-Shell erstellen.
use <your_db_name>
Warte, wir hatten diesen Befehl schon einmal! Warum benutze ich es wieder?!
Wenn Ihre Datenbank in MongoDB Server bereits vorhanden ist, wird mit diesem Befehl in Ihre Datenbank navigiert.
Wenn die Datenbank jedoch noch nicht vorhanden ist, erstellt MongoDB Server die Datenbank für Sie. Dann wird es hinein navigieren.
Wenn Sie nach dem Erstellen einer neuen Datenbank den Befehl show database
ausführen, wird Ihre neu erstellte Datenbank nicht angezeigt. Dies liegt daran, dass es erst dann in Ihrer DB-Liste angezeigt wird, wenn es Daten (Dokumente) enthält.
5. Erstellen einer Sammlung
Navigieren Sie mit dem Befehl use
in Ihre neu erstellte Datenbank.
Eigentlich gibt es zwei Möglichkeiten, eine Sammlung zu erstellen. Lass uns beide sehen.
Eine Möglichkeit besteht darin, Daten in die Sammlung einzufügen:
db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})
Dadurch wird Ihre Sammlung erstellt myCollection
auch wenn die Sammlung nicht existiert. Dann wird ein Dokument mit name
und age
eingefügt. Dies sind nicht begrenzte Sammlungen.
Der zweite Weg ist unten gezeigt:
2.1 Erstellen einer nicht begrenzten Sammlung
db.createCollection("myCollection")
2.2 Erstellen einer begrenzten Sammlung
db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})
Auf diese Weise erstellen Sie eine Sammlung, ohne Daten einzufügen.
Eine „Capped Collection“ hat eine maximale Dokumentenanzahl, die ein Überlaufen von Dokumenten verhindert.
In diesem Beispiel habe ich die Deckelung aktiviert, indem ich den Wert auf true
.
Die size : 2
bedeutet ein Limit von zwei Megabyte, und max: 2
setzt die maximale Anzahl von Dokumenten auf zwei.
Wenn Sie nun versuchen, mehr als zwei Dokumente in mySecondCollection
einzufügen und den Befehl find
zu verwenden (über den wir bald sprechen werden), sehen Sie nur die zuletzt eingefügten Dokumente. Beachten Sie, dass dies nicht bedeutet, dass das allererste Dokument gelöscht wurde — es wird einfach nicht angezeigt.
6. Einfügen von Daten
Wir können Daten in eine neue Sammlung oder in eine zuvor erstellte Sammlung einfügen.
Es gibt drei Methoden zum Einfügen von Daten.
-
insertOne()
wird verwendet, um nur ein einzelnes Dokument einzufügen. -
insertMany()
wird verwendet, um mehr als ein Dokument einzufügen. -
insert()
wird verwendet, um so viele Dokumente einzufügen, wie Sie möchten.
Nachfolgend einige Beispiele:
- insertOne()
db.myCollection.insertOne( { "name": "navindu", "age": 22 })
- insertMany()
db.myCollection.insertMany()
Die insert()
Methode ähnelt der insertMany()
Methode.
Beachten Sie auch, dass wir eine neue Eigenschaft namens location
in das Dokument für John Doe
eingefügt haben. Wenn Sie also find
, wird nur für john doe
die Eigenschaft location
angehängt.
Dies kann ein Vorteil sein, wenn es um NoSQL-Datenbanken wie MongoDB geht. Es ermöglicht Skalierbarkeit.
7. Daten abfragen
So können Sie alle Daten aus einer Sammlung abfragen:
db.myCollection.find()
Wenn Sie diese Daten in einer saubereren Weise fügen Sie einfach .pretty()
am Ende hinzu. Dadurch wird das Dokument im hübsch gedruckten JSON-Format angezeigt.
db.myCollection.find().pretty()
Wait…In diese Beispiele haben Sie gerade bemerkt, so etwas wie _id
? Wie kam es dazu?Wenn Sie ein Dokument einfügen, fügt MongoDB automatisch ein _id
-Feld hinzu, das jedes Dokument eindeutig identifiziert. Wenn Sie nicht möchten, dass es angezeigt wird, führen Sie einfach den folgenden Befehl aus
db.myCollection.find({}, _id: 0).pretty()
Als nächstes betrachten wir das Filtern von Daten.
Wenn Sie ein bestimmtes Dokument anzeigen möchten, können Sie ein einzelnes Detail des Dokuments angeben, das angezeigt werden soll.
db.myCollection.find( { name: "john" })
Angenommen, Sie möchten nur Personen anzeigen, deren Alter unter 25 liegt. Sie können $lt
verwenden, um danach zu filtern.
db.myCollection.find( { age : {$lt : 25} })
In ähnlicher Weise steht $gt
für größer als, $lte
ist „kleiner oder gleich“, $gte
ist „größer oder gleich“ und $ne
ist „nicht gleich“.
8. Dokumente aktualisieren
Angenommen, Sie möchten die Adresse oder das Alter einer Person aktualisieren. Wie können Sie dies tun? Nun, siehe das nächste Beispiel:
db.myCollection.update({age : 20}, {$set: {age: 23}})
Das erste Argument ist das Feld, welches Dokument Sie aktualisieren möchten. Hier gebe ich der Einfachheit halber age
an. In der Produktionsumgebung könnten Sie so etwas wie das Feld _id
.
Es ist immer besser, etwas wie _id
zu verwenden, um eine eindeutige Zeile zu aktualisieren. Dies liegt daran, dass mehrere Felder dieselbe age
und name
. Wenn Sie also eine einzelne Zeile aktualisieren, wirkt sich dies auf alle Zeilen aus, die denselben Namen und dasselbe Alter haben.
Wenn Sie ein Dokument auf diese Weise mit einer neuen Eigenschaft aktualisieren, sagen wir location
Zum Beispiel wird das Dokument mit der Eigenschaft neues Attribut. Und wenn Sie eine find
, lautet das Ergebnis:
Wenn Sie eine Eigenschaft aus einem einzelnen Dokument entfernen müssen, können Sie Folgendes tun (nehmen wir an, Sie möchten age
weg sein):
db.myCollection.update({name: "navindu"}, {$unset: age});
9. Entfernen eines Dokuments
Wie bereits erwähnt, müssen Sie beim Aktualisieren oder Löschen eines Dokuments nur die _id
nicht nur name
age
location
.
db.myCollection.remove({name: "navindu"});
10. Entfernen einer Sammlung
db.myCollection.remove({});
Beachten Sie, dass dies nicht der drop()
Methode entspricht. Der Unterschied ist, drop()
wird verwendet, um alle Dokumente in einer Sammlung zu entfernen, aber die remove()
Methode wird verwendet, um alle Dokumente zusammen mit der Sammlung selbst zu löschen.
Logische Operatoren
MongoDB stellt logische Operatoren zur Verfügung. Das folgende Bild fasst die verschiedenen Arten von logischen Operatoren zusammen.
Angenommen, Sie möchten Personen anzeigen, deren Alter weniger als 25 Jahre beträgt und deren Standort Colombo ist. Was könnten wir tun?
Wir können den $and
Operator verwenden!
db.myCollection.find({$and:});
Lassen Sie uns zu guter Letzt über Aggregation sprechen.
Aggregation
Eine kurze Erinnerung an das, was wir über Aggregationsfunktionen in SQL-Datenbanken gelernt haben:
Einfach ausgedrückt, Aggregation gruppiert Werte aus mehreren Dokumenten und fasst sie auf irgendeine Weise zusammen.
Stellen Sie sich vor, wir hätten männliche und weibliche Studenten in einer recordBook
Sammlung und wir möchten eine Gesamtanzahl von jedem von ihnen. Um die Summe von Männchen und Weibchen zu erhalten, könnten wir die $group
Aggregatfunktion verwenden.
db.recordBook.aggregate();
Einwickeln
Wir haben also die Grundlagen von MongoDB besprochen, die Sie möglicherweise müssen Sie in Zukunft eine Anwendung erstellen. Ich hoffe euch hat dieser Artikel gefallen – danke fürs Lesen!