Was ist MongoDB? ArchiStruktur, Funktionen und Beispiel
⚡ Intelligente Zusammenfassung
MongoDB ist eine dokumentenorientierte NoSQL-Datenbank, die für die Speicherung großer Datenmengen verwendet wird und Sammlungen und Dokumente anstelle von Tabellen und Zeilen nutzt. Diese Ressource erklärt MongoDB Funktionen, ein Dokumentbeispiel, wichtige Architekturkomponenten, Gründe für die Verwendung, Datenmodellierung und wie es sich von einer relationalen Datenbank unterscheidet.
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 MongoDBSammlungen enthalten Mengen von Dokumenten und Funktionen, was dem Äquivalent von Tabellen in relationalen Datenbanken entspricht. 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 variable Anzahl von Feldern aufweisen. Auch Größe und Inhalt der einzelnen Dokumente können variieren.
- 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) benötigen kein vorher definiertes Schema. Stattdessen können die Felder dynamisch erstellt werden.
- Das darin verfügbare Datenmodell MongoDB ermöglicht es Ihnen, hierarchische Beziehungen darzustellen, Arrays zu speichern und andere, komplexere Strukturen einfacher zu speichern.
- Skalierbarkeit - Die MongoDB Die Umgebungen sind sehr gut skalierbar. Unternehmen auf der ganzen Welt haben Cluster definiert, von denen einige mehr als 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.
- Auffällig ist, dass die Bestelldaten (Bestell-ID, Produkt und Menge), die in relationalen Datenbanken normalerweise in einer separaten Tabelle gespeichert werden, hier tatsächlich als eingebettetes Dokument in der Sammlung selbst gespeichert werden. MongoDBDies ist einer der Hauptunterschiede in der Art und Weise, wie Daten modelliert werden in 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 Das Feld wird automatisch erstellt. Wenn wir uns beispielsweise die obige Kundentabelle ansehen, MongoDB jedem Dokument in der Sammlung wird eine 24-stellige eindeutige Kennung hinzugefügt.
| _Ausweis | Kundennummer | Kundenname | Auftragsnummer |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Trevor Smith | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Kollektion – Dies ist eine Gruppeping of MongoDB Dokumente. Eine Sammlung entspricht einer Tabelle, die in jedem anderen RDBMS wie z. B. erstellt wird. Oracle oder MS SQL. Eine Sammlung existiert innerhalb einer einzelnen Datenbank. Wie bereits in der Einleitung erwähnt, erzwingen Sammlungen keine bestimmte Struktur.
- Cursor – Dies ist ein Zeiger auf die Ergebnismenge einer Abfrage. Clients können einen Cursor durchlaufen, um Ergebnisse abzurufen.
- Datenbank – Dies ist ein Container für Sammlungen, ähnlich wie in einem relationalen Datenbankmanagementsystem (RDBMS) ein Container für Tabellen. Jede Datenbank erhält ihren eigenen Satz von Dateien im Dateisystem. MongoDB Der Server kann mehrere Datenbanken speichern.
- DokumentAAA – Eine Aufzeichnung in a MongoDB Eine Sammlung wird im Grunde als Dokument bezeichnet. Das Dokument wiederum besteht aus Feldnamen und Werten.
- Feld Ein Feld ist ein Name-Wert-Paar in einem Dokument. Ein Dokument kann null oder mehrere Felder enthalten. Felder sind vergleichbar mit Spalten in relationalen Datenbanken. Das folgende Diagramm zeigt ein Beispiel für Felder mit Schlüssel-Wert-Paaren. Im unten stehenden Beispiel sind CustomerID und 11 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?
Nachfolgend sind einige Gründe aufgeführt, warum man damit beginnen sollte MongoDB:
- Dokumentenorientiert - Schon 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 – Um die Leistung von Suchvorgängen zu verbessern, können Indizes erstellt werden. MongoDB. Jedes Feld in a MongoDB Dokument kann indiziert werden.
- Replikation - MongoDB kann mit Replikatsets eine hohe Verfügbarkeit gewährleisten. Ein Replikatset besteht aus zwei oder mehr MongoDB Jedes Mitglied eines Replikatsets 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- und Schreibvorgänge durchführt. Die sekundären Replikate speichern mithilfe der integrierten Replikation eine Kopie der Daten des primären Replikats. Fällt ein primäres Replikat aus, schaltet das Replikatset automatisch auf das sekundäre Replikat um, welches dann zum primären Server wird.
- 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 in der Einleitung 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.
Bei der Modellierung von Daten in MongoDBBeachten Sie bitte Folgendes:
- Welche Anforderungen stellt die Anwendung? – Analysieren Sie die Geschäftsanforderungen der Anwendung und ermitteln Sie, welche Daten und welche Art von Daten benötigt werden. Stellen Sie darauf basierend sicher, dass die Dokumentstruktur entsprechend festgelegt wird.
- Welche Datenabrufmuster gibt es? – Falls Sie mit einer hohen Anzahl von Abfragen rechnen, sollten Sie den Einsatz von Indizes in Ihrem Datenmodell in Betracht ziehen, um die Effizienz der Abfragen zu verbessern.
- Finden in der Datenbank häufige Einfügungen, Aktualisierungen und Löschungen statt? Überdenken Sie die Verwendung von Indizes oder integrieren Sie gegebenenfalls Sharding in Ihr Datenmodellierungsdesign, 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 RDBMSDie Tabelle enthält die Spalten und Zeilen, die zum Speichern der Daten verwendet werden, wohingegen in MongoDB Diese Struktur wird als Sammlung bezeichnet. Die Sammlung enthält Dokumente, die wiederum Felder enthalten, welche wiederum Schlüssel-Wert-Paare darstellen. |
| Reihe | DokumentAAA | 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 relationalen Datenbankmanagementsystemen (RDBMS) sind Daten manchmal auf verschiedene Tabellen verteilt, und um eine vollständige Ansicht aller Daten anzuzeigen, wird manchmal ein Join über die Tabellen hinweg durchgeführt. MongoDBDie Daten werden normalerweise in einer einzigen Sammlung gespeichert, jedoch durch eingebettete Dokumente getrennt. Daher gibt es kein Konzept von Joins in MongoDB. |
Abgesehen von den Unterschieden in den Begriffen 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 Zunächst werden Daten normalisiert, um verwaiste Datensätze und Duplikate zu vermeiden. Die Normalisierung erfordert jedoch mehr Tabellen, was wiederum zu mehr Tabellenverknüpfungen und somit zu mehr Schlüsseln und Indizes führt. Mit zunehmender Größe der Datenbanken kann die Performance zu einem Problem werden. Dies ist allerdings keine explizite Anforderung in … MongoDB. MongoDB ist flexibel und erfordert keine vorherige Normalisierung der Daten.



