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
- 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.
- 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.
- Die Zeilen (oder Dokumente wie in genannt MongoDB) muss zuvor kein Schema definiert werden. Stattdessen können die Felder im Handumdrehen erstellt werden.
- Das darin verfügbare Datenmodell MongoDB ermöglicht Ihnen die Darstellung hierarchischer Beziehungen und die einfachere Speicherung von Arrays und anderen komplexeren Strukturen.
- Skalierbarkeit – Die MongoDB Umgebungen sind sehr skalierbar. Unternehmen auf der ganzen Welt haben Cluster definiert, von denen einige über 100 Knoten mit Millionen von Dokumenten in der Datenbank betreiben.
MongoDB Beispiel
Das folgende Beispiel zeigt, wie ein Dokument modelliert werden kann MongoDB.
- Das Feld _id wird hinzugefügt von MongoDB um das Dokument in der Sammlung eindeutig zu identifizieren.
- 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.
Schlüsselkomponenten von MongoDB Architektur
Nachfolgend finden Sie einige häufig verwendete Begriffe MongoDB
- _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 |
- Kollektion – 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.
- Cursor – Dies ist ein Zeiger auf die Ergebnismenge einer Abfrage. Clients können einen Cursor durchlaufen, um Ergebnisse abzurufen.
- Database – 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.
- Dokument – Eine Aufzeichnung in a MongoDB Eine Sammlung wird grundsätzlich als Dokument bezeichnet. Das Dokument wiederum besteht aus Feldnamen und Werten.
- Feld – Ein Name-Wert-Paar in einem Dokument. Ein Dokument hat null oder mehr Felder. Felder sind analog zu Spalten in relationalen Datenbanken. Das folgende Diagramm zeigt ein Beispiel für Felder mit Schlüssel-Wert-Paaren. Im folgenden Beispiel ist CustomerID und 11 also eines der im Dokument definierten Schlüssel-Wert-Paare.
- JSON – Das nennt man JavaSkript Objektnotation. Dies ist ein für Menschen lesbares, reines Textformat zum Darstellen 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
- 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.
- Ad-hoc-Abfragen – MongoDB unterstützt die Suche nach Feldern, Bereichsabfragen und regulären Ausdrücken. Abfragen können durchgeführt werden, um bestimmte Felder in Dokumenten zurückzugeben.
- 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.
- Reproduzieren - MongoDB kann mit Replikatsätzen hohe Verfügbarkeit bieten. Ein Replikatsatz besteht aus zwei oder mehr Mongo-DB-Instanzen. Jedes Replikatsatzmitglied 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. Die sekundären Replikate verwalten mithilfe integrierter Replikation eine Kopie der Daten des primären Replikats. Wenn ein primäres Replikat ausfällt, wechselt das Replikatset automatisch zum sekundären Replikat und wird dann zum primären Server.
- 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 Folgendes
- 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.
- 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.
- 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 | Kollektion | 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
- Relationale Datenbanken sind dafür bekannt, die Datenintegrität durchzusetzen. Dies ist keine ausdrückliche Anforderung MongoDB.
- 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.