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:

Versuch, den Mongodb-Server ohne \data\db-Verzeichnisse zu starten

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
Zunächst haben Sie eine Datenbank namens ‚test‘

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.

  1. Ö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: CrudDBadminconfig 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.

SQL-Begriffe und NoSQL-Begriffe von Victoria Malaya

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.

Möglichkeiten, wie Daten in einem JSON gespeichert werden können

Es gibt drei Methoden zum Einfügen von Daten.

  1. insertOne() wird verwendet, um nur ein einzelnes Dokument einzufügen.
  2. insertMany() wird verwendet, um mehr als ein Dokument einzufügen.
  3. 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.

Erfolgreich eingefügte Daten

7. Daten abfragen

So können Sie alle Daten aus einer Sammlung abfragen:

db.myCollection.find()
Ergebnis

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()
Ergebnis

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" })
Ergebnis

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.

Ergebnis

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:

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 nameagelocation .

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.

Referenz: MongoDB-Handbuch

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:

Aggregationsfunktionen in SQL-Datenbanken. ref : Tutorial Gateway

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();
Ergebnis

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!



Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.