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.

  • ๐Ÿ“„ Dokumentenmodell: Die Daten werden als Schlรผssel-Wert-Dokumente innerhalb von Sammlungen und nicht in Tabellen gespeichert.
  • ๐Ÿงฉ Flexibles Schema: Felder werden dynamisch ohne vordefinierte Struktur erstellt.
  • ???? ๏ธ Kernkomponenten: _id, collection, document, field, cursor, database und JSON.
  • โš™๏ธ Warum es verwenden: Ad-hoc-Abfragen, Indizierung, Replikation und Sharding fรผr Skalierbarkeit.
  • ๐Ÿ”„ Im Vergleich zu RDBMS: Sammlungen ersetzen Tabellen und eingebettete Dokumente ersetzen Joins.

Was ist MongoDB

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

  1. 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.
  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) benรถtigen kein vorher definiertes Schema. Stattdessen kรถnnen die Felder dynamisch erstellt werden.
  4. Das darin verfรผgbare Datenmodell MongoDB ermรถglicht es Ihnen, hierarchische Beziehungen darzustellen, Arrays zu speichern und andere, komplexere Strukturen einfacher zu speichern.
  5. 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.

  1. Das Feld _id wird hinzugefรผgt von MongoDB um das Dokument in der Sammlung eindeutig zu identifizieren.
  2. 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.

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 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
  1. 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.
  2. Cursor โ€“ Dies ist ein Zeiger auf die Ergebnismenge einer Abfrage. Clients kรถnnen einen Cursor durchlaufen, um Ergebnisse abzurufen.
  3. 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.
  4. DokumentAAA โ€“ Eine Aufzeichnung in a MongoDB Eine Sammlung wird im Grunde als Dokument bezeichnet. Das Dokument wiederum besteht aus Feldnamen und Werten.
  5. 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.

Schlรผsselkomponenten von MongoDB Architektur

  1. 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:

  1. 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.
  2. 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.
  3. Indizierung โ€“ Um die Leistung von Suchvorgรคngen zu verbessern, kรถnnen Indizes erstellt werden. MongoDB. Jedes Feld in a MongoDB Dokument kann indiziert werden.
  4. 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.
  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 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:

  1. 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.
  2. 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.
  3. 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:

  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 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.

Hรคufig gestellte Fragen

MongoDB Atlas speichert groรŸe Mengen unstrukturierter und semistrukturierter Daten und eignet sich daher ideal fรผr KI- und ML-Pipelines. Seine flexiblen Dokumente enthalten Trainingsdaten, Merkmalsmengen und Modellmetadaten, und Atlas bietet zusรคtzlich eine Vektorsuche fรผr KI-Anwendungen.

Ja. MongoDB Atlas Vector Search ermรถglicht das Speichern und Abfragen von Vektoreinbettungen zusammen mit Ihren Dokumenten. Dies unterstรผtzt semantische Suche, Empfehlungen und die Erweiterung des Abrufs von Inhalten fรผr KI-Anwendungen ohne separate Vektordatenbank.

MongoDB Die Community Edition ist kostenlos und Open Source. MongoDB bietet auรŸerdem Atlas an, einen Managed Cloud Service mit einem kostenlosen Basistarif und einer kostenpflichtigen Enterprise Edition mit erweiterter Sicherheit und Support.

Viele groรŸe Organisationen nutzen MongoDB Fรผr die flexible Speicherung groรŸer Datenmengen, beispielsweise in den Bereichen E-Commerce, Gaming, IoT und Content-Management, eignet sich diese Lรถsung. Dank Skalierbarkeit durch Sharding und Replikation ist sie ideal fรผr Anwendungen mit Millionen von Dokumenten.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: