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.


