Lassen Sie mich Ihnen einen kurzen Überblick über MongoDB geben.
Warum ist MongoDB interessant?
Wie ist es nützlich für unsere Anwendung?
Und was sind einige der wichtigsten Merkmale von MongoDB im
Gegensatz zu herkömmlichen SQL-Datenbanken?
So wird dies nicht eine ganze Verträge oder Datenbanken sein.
Ich gehe davon aus, dass Sie über ausreichende Kenntnisse der Datenbanken verfügen.
Also, was ich vorstellen würde, was MongoDB wäre einfach für Sie zu folgen.
Aus Ihren Vorkenntnissen über Datenbanken
gehe ich davon aus, dass Sie bereits verstehen, dass Datenbanken verwendet werden, um strukturierte Daten
zu speichern, und es Ihnen auch ermöglichen,
verschiedene Operationen der Daten durchzuführen, einschließlich der Abfrage der Daten,
Einfügen von Datensätzen in die Datenbank,
Aktualisierung eines vorhandenen Datensatzes in der Datenbank oder Löschen eines Datensatzes aus der Datenbank.
Die typischen crud-Operationen, die auf Datenbanken unterstützt werden.
Structured Query Language oder SQL-basierte Datenbanken sind
seit langem als Mittel zum Speichern von Daten sehr beliebt.
Die MySQL ist ein Beispiel für SQL-basierte Datenbank.
Sie waren sehr effektiv, um
Daten zu speichern und dann viele der Anforderungen von Anwendungen zu adressieren.
Tatsächlich verwenden viele Websites bereits SQL-Datenbanken als Backend zum Speichern von Daten
, da daher keine SQL-Datenbanken
bei neuen Arten von Anwendungen wichtig sind, die online geschaltet werden.
Es gibt eine steigende Nachfrage nach
neuen Funktionen, die nicht alle SQL-basierten Datenbanken adressieren können.
Dies ist also, wo die NoSQL-basierte Datenbank nicht nur
SQL-basierte Datenbank eine Menge Grant gewinnen,
MongoDB ist ein Beispiel dafür.
Daher sind die NoSQL-Datenbanken so konzipiert, dass
einige der Mängel von SQL-basierten Datenbanken behoben werden.
Die NoSQL-Datenbanken selbst können in vier verschiedene Kategorien eingeteilt werden.
Wir haben dokumentbasierte Datenbanken wie MongoDB,
wir haben die einfacheren Schlüsselwert-basierten Datenbanken wie Redis,
spalten-familienbasierte Datenbanken wie Cassandra und dann die neueren Graph-Datenbanken wie
Neo4J und tatsächlich gibt es jetzt mehr auf dem Markt als diese Beispiele, die ich gegeben habe.
Aber natürlich
werden wir uns in diesem Kurs vor allem auf dokumentbasierte Datenbanken konzentrieren, insbesondere MongoDB.
Also werde ich mehr über MongoDB im Rest dieser Vorlesung überprüfen.
Dokumentdatenbanken
sind, wie der Name schon sagt, um Dokumente herum aufgebaut.
Ein Dokument ist eine eigenständige Informationseinheit und kann in vielen verschiedenen Formaten vorliegen.
JSON ist eines der gängigsten Formate zum Speichern von Dokumenten in einer Dokumentdatenbank.
Als Beispiel wird hier ein JSON-Dokument gezeigt
, das in einer typischen Dokumentdatenbank verliehen wird.
Dokumente selbst können in Sammlungen organisiert werden.
Eine Sammlung ist also eine Gruppe von Dokumenten und wiederum
kann die Datenbank selbst als eine Reihe von Sammlungen betrachtet werden.
So werden diese Begriffe „Dokumente Sammlungen“ und „Die Datenbank“
häufig auftreten, wenn wir über Dokumentdatenbanken und MongoDB im Besonderen diskutieren.
Warum sind NoSQL-Datenbanken von Interesse für uns?
Insbesondere die Skalierbarkeit ist einer
der Gründe, warum NoSQL-Datenbanken sehr gut glänzen.
Im Hinblick auf die Skalierbarkeit,
wenn wir uns die beiden Anforderungen ansehen:
Verfügbarkeit und Konsistenz der Datenbanken, in der Regel,
finden SQL-Datenbanken es sehr schwierig, beide Anforderungen gleichzeitig zu erfüllen.
Es gibt also einen Kompromiss zwischen Verfügbarkeit und Konsistenz.
Dies ist, wo NoSQL-Datenbanken viel
erfolgreicher waren, um beide Anforderungen zu erfüllen.
Hier
tritt auch der dritte hier hervorgehobene Aspekt, Partitionstoleranz, in Kraft.
Jetzt ist das Partitionieren einer SQL-Datenbank und das anschließende Verteilen nicht so einfach.
Während eine NoSQL-Datenbank viel zugänglicher ist
, unterteilt und dann über mehrere Server verteilt zu werden.
Der zweite Aspekt, warum NoSQL-Datenbanken populär waren, ist die einfache Bereitstellung.
Wenn Sie eine SQL-Datenbank verwenden,
müssen Sie die Datensätze in Ihrer SQL-Datenbank wieder mit
Objekten in Ihrer Muttersprache wie Java oder Javascript usw. abgleichen.
Es besteht also Bedarf an objekt-relationalen Mapping
, und hier muss ein Zwischengateway diese Anforderung erfüllen.
Mit einer NoSQL-Datenbank wie einer dokumentbasierten Datenbank, die Daten in Form von JSON speichert,
wird das Mapping ziemlich einfach, und das ist einer der Gründe, warum
NoSQL-Datenbanken im Bereich der Webentwicklung sehr beliebt waren.
MongoDB kommt insbesondere zu
MongoDB, ist eine Dokumentdatenbank.
Der Server selbst kann mehrere Datenbanken unterstützen.
Eine Datenbank ist insbesondere eine Reihe von Sammlungen
und die Sammlung selbst, wie wir bereits besprochen haben, ist eine Reihe von Dokumenten.
So wird das Dokument zur Informationseinheit im Falle von MongoDB.
Das Dokument in MongoDB ist nichts anderes als ein JSON-Dokument.
In der Tat speichert MongoDB das Dokument in einer kompakteren Form, die als BSON-Format bezeichnet wird.
Darüber reden wir auf der nächsten Folie.
Während MongoDB eine dokumentbasierte Datenbank ist,
speichert sie die JSON-Dokumente in einer kompakten Form,
die als BSON-Format oder binäres JSON-Format bezeichnet wird.
Jetzt unterstützt dies Längenpräfix für jeden Wert
, so dass das Überspringen eines Feldes viel einfacher wird.
Wie Sie sehen, unterstützt MongoDB zusätzliche Funktionen als eine einfache Dokumentdatenbank.
Die Informationen über den Typ eines Feldwerts werden ebenfalls gespeichert.
Darüber hinaus
werden im JSON-Dokument zusätzliche primitive Typen gespeichert, die nützlich sind,
wenn Sie Operationen in der Datenbank ausführen.
Dinge wie das UTC-Datumsformat,
es unterstützt auch rohe Binärdateien und verwendet auch ein Objekt-ID-Format, um
die ID jedes Dokuments in der Datenbank zu speichern, wenn Sie möchten.
Lassen Sie uns auf der nächsten Folie etwas detaillierter darüber sprechen.
Lassen Sie uns über die MongoDB-Objekt-ID sprechen.
Jedes Dokument in der MongoDB-Datenbank muss über ein ID-Feld verfügen,
ein Unterstrich-ID-Feld,
das als Primärschlüssel für das Dokument fungiert.
Und dieses Feld ist für jedes Dokument eindeutig.
Das ID-Feld selbst kann in
vielen Formaten verwendet werden, und ein bestimmtes Format, das MongoDB automatisch
zuweist, falls Sie nicht Ihr eigenes ID-Feld verwenden möchten,
ist die Objekt-ID, die standardmäßig von MongoDB erstellt wird.
Die Objekt-ID selbst ist also
eine strukturierte Information, wird aber als ID des Dokuments gespeichert.
Beispielsweise
enthält das ID-Feld, das von Mongo automatisch zugewiesen wird, falls Sie kein ID-Feld angeben, die Objekt-ID in Form eines langen Strings.
Nun hat diese Zeichenfolge ein bestimmtes Format, das
es ermöglicht, eine Reihe von Informationen innerhalb der Objekt-ID zu speichern.
Schauen wir uns die Struktur der Objekt-ID selbst in der nächsten Folie an.
Wie bereits erwähnt, ist das Objekt-ID-Feld selbst
ein 12-Byte-Feld, das Informationen in einem bestimmten Format speichert.
Die ersten vier Bytes enthalten einen Zeitstempel,
den typischen Unix-Zeitstempel in der Auflösung einer Sekunde.
Dies wird also in den ersten vier Bytes erzählt.
Dann sind die nächsten drei Bytes in Richtung der Computer-ID,
der Computer, auf dem der Mongo-Server läuft
und die nächsten zwei Bytes die Prozess-ID,
der spezifische Mongo-Prozess, der
dieses Dokument erstellt hat, und dann das letzte Feld ist ein Inkrement.
Nun, wie Sie verstehen,
ist das Zeitstempelfeld selbst in der Auflösung einer Sekunde.
Wenn Sie also mehrere Dokumente haben, die innerhalb derselben Sekunde gespeichert sind,
unterscheidet das Inkrementfeld zwischen den Dokumenten.
Sie inkrementieren Feld ist ein selbstinkrementierendes Feld.
So erhält jedes neue Dokument, das innerhalb einer Sekunde erstellt wird, einen neuen Inkrementwert.
Zusammen mit diesen beiden
können Sie problemlos zwischen
verschiedenen Dokumenten unterscheiden, die in Ihrer Dokumentdatenbank gespeichert sind.
Auf diese Weise können Sie jedem Dokument eindeutig eine eindeutige ID zuweisen.
Nicht nur das, wenn Sie eine ID
haben, können Sie leicht Informationen von dieser ID abrufen.
So können Sie beispielsweise die ObjectID erhalten und dann die
GetTimeStamp-Methode der Objekt-ID aufrufen, und
dies gibt den Zeitstempel im ISO-Datumsformat zurück.
So können Sie erkennen, wann dieses Dokument erstellt wurde.
Mit diesem schnellen Verständnis von MongoDB,
lassen Sie uns mit der Übung fortfahren, wo wir zuerst MongoDB auf unserem Computer installieren
und danach mit der MongoDB-Datenbank interagieren werden, indem wir die Mongo Ripple verwenden,
die lesen evaluieren Druckschleife, die Mongo unterstützt.
Danach werden wir uns in der
nächsten Lektion ansehen, wie wir aus unserer Knotenanwendung auf den Mongo-Server zugreifen können.