Was ist MongoDB? Einführung, ArchiStruktur, Funktionen und Beispiel

Was ist MongoDB?

MongoDB ist eine dokumentenorientierte NoSQL-Datenbank, die für die Speicherung großer Datenmengen verwendet wird. Anstatt Tabellen und Zeilen wie in herkömmlichen relationalen Datenbanken zu verwenden, MongoDB nutzt Sammlungen und Dokumente. Dokumente bestehen aus Schlüssel-Wert-Paaren, die die Grundeinheit der Daten darstellen MongoDB. Sammlungen enthalten Sätze von Dokumenten und Funktionen, die relationalen Datenbanktabellen entsprechen. MongoDB ist eine Datenbank, die etwa Mitte der 2000er Jahre ans Licht kam.

MongoDB Eigenschaften

  1. Jede Datenbank enthält Sammlungen, die wiederum Dokumente enthalten. Jedes Dokument kann unterschiedlich sein und eine unterschiedliche Anzahl von Feldern aufweisen. Die Größe und der Inhalt der einzelnen Dokumente können voneinander abweichen.
  2. Die Dokumentstruktur entspricht eher der Art und Weise, wie Entwickler ihre Klassen und Objekte in ihren jeweiligen Programmiersprachen erstellen. Entwickler sagen oft, dass ihre Klassen keine Zeilen und Spalten sind, sondern eine klare Struktur mit Schlüssel-Wert-Paaren haben.
  3. Die Zeilen (oder Dokumente wie in genannt MongoDB) muss zuvor kein Schema definiert werden. Stattdessen können die Felder im Handumdrehen erstellt werden.
  4. Das darin verfügbare Datenmodell MongoDB ermöglicht Ihnen die Darstellung hierarchiCal-Beziehungen, zum Speichern von Arrays und anderen complex Strukturen einfacher.
  5. Skalierbarkeit – Die MongoDB Umgebungen sind sehr skalierbar. Unternehmen auf der ganzen Welt haben definiert clusterEinige von ihnen betreiben mehr als 100 Knoten mit rund Millionen Dokumenten in der Datenbank

MongoDB Beispiel

Das folgende Beispiel zeigt, wie ein Dokument modelliert werden kann MongoDB.

  1. Das Feld _id wird hinzugefügt von MongoDB um das Dokument in der Sammlung eindeutig zu identifizieren.
  2. Was Sie beachten können, ist, dass die Bestelldaten (OrderID, Produkt und Menge), die in RDBMS normalerweise in einer separaten Tabelle gespeichert werden, während in MongoDB Es wird tatsächlich als eingebettetes Dokument in der Sammlung selbst gespeichert. Dies ist einer der Hauptunterschiede in der Art und Weise, wie Daten modelliert werden MongoDB.

MongoDB Beispiel

Schlüsselkomponenten von MongoDB Architektur

Nachfolgend finden Sie einige häufig verwendete Begriffe MongoDB

  1. _id – Dies ist ein Pflichtfeld in jedem MongoDB dokumentieren. Das Feld _id stellt einen eindeutigen Wert im dar MongoDB dokumentieren. Das Feld _id ist wie der Primärschlüssel des Dokuments. Wenn Sie ein neues Dokument ohne _id-Feld erstellen, MongoDB erstellt das Feld automatisch. Wenn wir uns beispielsweise das Beispiel der obigen Kundentabelle ansehen, fügt Mongo DB jedem Dokument in der Sammlung eine 24-stellige eindeutige Kennung hinzu.
_Ausweis Kundennummer Kundenname Auftragsnummer
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Sammlung – Dies ist eine Gruppierung von MongoDB Unterlagen. Eine Sammlung ist das Äquivalent einer Tabelle, die in einem anderen RDMS erstellt wird, z Oracle oder MS SQL. Eine Sammlung existiert innerhalb einer einzelnen Datenbank. Wie aus der Einleitung hervorgeht, erzwingen Sammlungen keinerlei Struktur.
  2. Cursor – Dies ist ein Zeiger auf die Ergebnismenge einer Abfrage. Clients können einen Cursor durchlaufen, um Ergebnisse abzurufen.
  3. Datenbase – Dies ist ein Container für Sammlungen wie in RDMS, wobei es sich um einen Container für Tabellen handelt. Jede Datenbank erhält ihren eigenen Satz von Dateien im Dateisystem. A MongoDB Der Server kann mehrere Datenbanken speichern.
  4. Dokument – Eine Aufzeichnung in a MongoDB Eine Sammlung wird grundsätzlich als Dokument bezeichnet. Das Dokument wiederum besteht aus Feldnamen und Werten.
  5. Feld – Ein Name-Wert-Paar in einem Dokument. Ein Dokument hat null oder mehr Felder. Felder sind analog zu Spalten in relationalen Datenbanken. Das Folgendewing Das Diagramm zeigt ein Beispiel für Felder mit Schlüsselwertpaaren. Im Beispiel unten ist CustomerID und 11 eines der im Dokument definierten Schlüssel-Wert-Paare.

Schlüsselkomponenten von MongoDB Architektur

  1. JSON – Das nennt man JavaScript Objektnotation. Das ist ein Mensch-readable, reines Textformat zum Ausdruck strukturierter Daten. JSON wird derzeit in vielen Programmiersprachen unterstützt.

Nur eine kurze Anmerkung zum Hauptunterschied zwischen dem _id-Feld und einem normalen Sammlungsfeld. Das Feld _id dient zur eindeutigen Identifizierung der Dokumente in einer Sammlung und wird automatisch hinzugefügt von MongoDB wenn die Sammlung erstellt wird.

Warum verwenden MongoDB?

Im Folgenden sind einige Gründe aufgeführt, warum man mit der Verwendung beginnen sollte MongoDB

  1. Dokumentenorientiert – Seit MongoDB ist eine NoSQL Bei einer Typdatenbank werden die Daten nicht in einem relationalen Typformat gespeichert, sondern in Dokumenten. Das macht MongoDB Sehr flexibel und anpassungsfähig an reale Geschäftssituationen und Anforderungen.
  2. Ad-hoc-Abfragen – MongoDB unterstützt searching nach Feld, Bereichsabfragen und Suche nach regulären Ausdrücken. Es können Abfragen durchgeführt werden, um bestimmte Felder in Dokumenten zurückzugeben.
  3. Indizierung – Indizes können erstellt werden, um die Leistung der Suchvorgänge darin zu verbessern MongoDB. Jedes Feld in a MongoDB Dokument kann indiziert werden.
  4. Reproduzieren - MongoDB kann mit Replikatsätzen eine hohe Verfügbarkeit gewährleisten. Ein Replikatsatz besteht aus zwei oder mehr Mongo-DB-Instances. Jedes Mitglied des Replikatsatzes kann jederzeit die Rolle des primären oder sekundären Replikats übernehmen. Das primäre Replikat ist der Hauptserver, der mit dem Client interagiert und alle Lese-/Schreibvorgänge ausführt operationen. Die sekundären Replikate verwalten mithilfe der integrierten Replikation eine Kopie der Daten der primären Replikate. Wenn ein primäres Replikat ausfällt, wechselt der Replikatsatz automatisch zum sekundären Server und dieser wird dann zum primären Server.
  5. Lastverteilung - MongoDB nutzt das Konzept des Shardings zur horizontalen Skalierung durch Aufteilung der Daten auf mehrere MongoDB Instanzen. MongoDB kann auf mehreren Servern laufen, die Last ausgleichen und/oder Daten duplizieren, um das System im Falle eines Hardwareausfalls am Laufen zu halten.

Datenmodellierung in MongoDB

Wie wir im Einführungsabschnitt gesehen haben, sind die Daten in MongoDB verfügt über ein flexibles Schema. Anders als in SQL Datenbanken, bei denen Sie vor dem Einfügen von Daten das Schema einer Tabelle deklarieren müssen, MongoDBDie Sammlungen von 's erzwingen keine Dokumentstruktur. Diese Art von Flexibilität macht aus MongoDB so mächtig.

Beachten Sie beim Modellieren von Daten in Mongo Folgendeswing Dinge im Kopf

  1. Was sind die Anforderungen der Anwendung? Schauen Sie sich die Geschäftsanforderungen der Anwendung an und sehen Sie, welche Daten und welche Art von Daten für die Anwendung benötigt werden. Stellen Sie auf dieser Grundlage sicher, dass die Struktur des Dokuments entsprechend festgelegt wird.
  2. Was sind Datenabrufmuster? Wenn Sie mit einer starken Abfragenutzung rechnen, sollten Sie die Verwendung von Indizes in Ihrem Datenmodell in Betracht ziehen, um die Effizienz von Abfragen zu verbessern.
  3. Kommt es in der Datenbank häufig zu Einfügungen, Aktualisierungen und Löschungen? Überdenken Sie die Verwendung von Indizes oder integrieren Sie bei Bedarf Sharding in Ihren Datenmodellierungsentwurf, um die Effizienz Ihres Gesamtsystems zu verbessern MongoDB Umwelt.

Unterschied zwischen MongoDB & RDBMS

Im Folgenden sind einige der wichtigsten Begriffsunterschiede aufgeführt MongoDB und RDBMS

RDBMS MongoDB Unterschied
Tisch Sammlung In RDBMS, enthält die Tabelle die Spalten und Zeilen, die zum Speichern der Daten verwendet werden, während in MongoDB, wird dieselbe Struktur als Sammlung bezeichnet. Die Sammlung enthält Dokumente, die wiederum Felder enthalten, die wiederum Schlüssel-Wert-Paare sind.
Reihe Dokument In RDBMS stellt die Zeile ein einzelnes, implizit strukturiertes Datenelement in einer Tabelle dar. In MongoDB, die Daten werden in Dokumenten gespeichert.
Kolonne Feld In RDBMS bezeichnet die Spalte eine Reihe von Datenwerten. Diese in MongoDB werden als Felder bezeichnet.
Joins Eingebettete Dokumente In RDBMS werden Daten manchmal auf verschiedene Tabellen verteilt und um eine vollständige Ansicht aller Daten anzuzeigen, wird manchmal ein Join über Tabellen hinweg gebildet, um die Daten abzurufen. In MongoDBwerden die Daten normalerweise in einer einzigen Sammlung gespeichert, jedoch durch die Verwendung eingebetteter Dokumente getrennt. Es gibt also kein Mitmach-Konzept MongoDB.

Abgesehen von den Begriffsunterschieden werden im Folgenden einige weitere Unterschiede aufgeführt

  1. Relationale Datenbanken sind dafür bekannt, die Datenintegrität durchzusetzen. Dies ist keine ausdrückliche Anforderung MongoDB.
  2. RDBMS erfordert, dass die Daten vorhanden sind normalisierte Erstens, um verwaiste Datensätze und Duplikate zu verhindern. Bei der Normalisierung von Daten sind dann mehr Tabellen erforderlich, was dann zu mehr Tabellenverknüpfungen führt und somit mehr Schlüssel und Indizes erfordert. Wenn Datenbanken zu wachsen beginnen, kann die Leistung zu einem Problem werden. Auch dies ist keine ausdrückliche Anforderung in MongoDB. MongoDB ist flexibel und erfordert keine vorherige Normalisierung der Daten.