MongoDB ist eine Open-Source-NoSQL-Datenbank. Als nicht-relationale Datenbank kann sie strukturierte, halbstrukturierte und unstrukturierte Daten verarbeiten. Sie verwendet ein nicht-relationales, dokumentenorientiertes Datenmodell und eine nicht-strukturierte Abfragesprache.
MongoDB ist äußerst flexibel und ermöglicht es Ihnen, verschiedene Datentypen zu kombinieren und zu speichern. Außerdem speichert und verarbeitet MongoDB größere Datenmengen als herkömmliche relationale Datenbanken. MongoDB verwendet ein Dokumenten-Storage-Format namens BSON, eine binäre Form von JSON (JavaScript Object Notation), die mehr Datentypen abdecken kann.
Wie funktioniert MongoDB?
MongoDB speichert Datenobjekte in Sammlungen und Dokumenten anstelle der in herkömmlichen relationalen Datenbanken verwendeten Tabellen und Zeilen. Sammlungen bestehen aus Dokumentensätzen, die mit Tabellen in einer relationalen Datenbank vergleichbar sind. Dokumente bestehen aus Schlüssel-Wert-Paaren, die die Grundeinheit der Daten in MongoDB darstellen.
Die Struktur eines Dokuments kann durch einfaches Hinzufügen neuer Felder oder Löschen bestehender Felder geändert werden. Dokumente können einen Primärschlüssel als eindeutige ID definieren, und Werte können eine Vielzahl von Datentypen sein, einschließlich anderer Dokumente, Arrays und Dokumenten-Arrays.
Wie funktioniert die MongoDB-Textsuche?
Eine wichtige Funktion von MongoDB ist die Textsuche, mit der Zeichenfolgefelder nach bestimmten Texten oder Wörtern durchsucht werden können. Eine Textsuche kann mithilfe eines Textindex oder des $text-Operators durchgeführt werden.
Ein Textindex kann entweder eine Zeichenfolge oder ein Array von Zeichenfolgeelementen sein. Damit eine Textsuchanfrage durchgeführt werden kann, muss die Sammlung einen Textindex enthalten. Eine Sammlung kann nur einen einzigen Textindex enthalten, und ein einzelner Textindex kann auf mehrere Felder angewendet werden.
Eine Suche kann auch in einer Sammlung mit einem Textindex mithilfe des $text-Operators durchgeführt werden. Der $text-Operator tokenisiert jede Suchzeichenfolge mit Leerzeichen und behandelt alle Satzzeichen außer - und \ als Begrenzungszeichen. Nach der Tokenisierung der Suchzeichenfolge führt der Operator die logische ODER-Operation für die Tokens durch.
Drei Beispiele für MongoDB-Abfragen
MongoDB verwendet die MongoDB Query Language (MQL), um Daten aus der Datenbank abzurufen. Es ist einfach zu bedienen und funktioniert ähnlich wie SQL mit CRUD-Operationen zum Erstellen, Lesen, Aktualisieren und Löschen von Dokumenten. Funktionsnamen folgen der Syntax:
<database>.<collection_name>. <operation>.
Die folgenden drei Beispiele veranschaulichen dies praktisch:
INSERT: Ein neues Dokument erstellen oder in eine Sammlung einfügen. Wenn die Sammlung nicht existiert, wird eine neue Sammlung erstellt.
db.collection.insertOne() fügt ein Dokument in eine Sammlung ein.
db.collection.insertMany() fügt mehrere Dokumente gleichzeitig in eine Sammlung ein.
So sieht das Einfügen eines Dokuments in die Customer-Sammlung aus:
db.customer.insertOne (
{
firstname: “Jane”,
lastname: “Mason”
Address: “232 Petunia Drive, Atlanta, GA, 30311”
}
FIND: Hiermit wird eine Sammlung von Dokumenten abgefragt. Abfragefilter und Kriterien können angewendet werden, um bestimmte Dokumente zu finden.
db.collection.find()
Mit dem folgenden Code werden alle Dokumente in der Customer-Sammlung gefunden:
db.customer.find()
UPDATE: Hiermit werden vorhandene Dokumente in einer Sammlung modifiziert.
db.collection.updateOne()
db.collection.updateMany()
db.collection.replaceOne()
So aktualisieren Sie ein Dokument in der Customer-Sammlung:
db.customer.updateOne(
{ firstname: “Jane” },
{
$set: { “address”, “5 Lavender Ave, Atlanta, GA, 30311”}
}
)
Die drei wichtigsten Vorteile von MongoDB
Flexibilität
MongoDB verfügt über eine dynamische Schemaarchitektur, die mit unstrukturierten Daten und unstrukturiertem Storage arbeitet. Da Daten in flexiblen, JSON-ähnlichen Dokumenten gespeichert werden, muss das Datenbankschema nicht vordefiniert werden, und die Schemata können dynamisch geändert werden, ohne dass es zu Ausfallzeiten kommt.
Mit dem BSON-Datenformat von MongoDB können Objekte in einer Sammlung unterschiedliche Sätze von Feldern haben, und fast jede Art von Datenstruktur kann modelliert und bearbeitet werden. Aus diesem Grund ist das flexible Datenbankmodell von MongoDB besonders vorteilhaft, wenn sich Geschäfts- und Datenanforderungen ändern.
Sharding
MongoDB bietet horizontale Skalierung durch einen Prozess namens „Sharding“. Beim Sharding werden Daten aus einem großen Datensatz aufgeteilt und auf mehrere Server verteilt. Wenn ein Server eine große Datenmenge nicht bewältigen kann, kann diese automatisch aufgeteilt und verteilt werden, ohne die Datenverarbeitung zu unterbrechen.
Bessere Performance
MongoDB speichert Daten in RAM, um den Datenzugriff zu beschleunigen und die Performance bei der Ausführung von Abfragen zu steigern. Daten werden direkt aus dem Arbeitsspeicher (RAM) und nicht von der Festplatte abgerufen, wodurch das Lesen und Schreiben von Daten beschleunigt wird. Die nicht-relationale Datenstruktur von MongoDB bewirkt auch, dass für die Suche und den Abruf von Daten weniger Rechenleistung erforderlich ist als bei einer relationalen Datenbank.
Wann sollten Sie MongoDB verwenden?
Echtzeitanalysen
Als NoSQL-Datenbank ist MongoDB eine gute Wahl für die Integration und Verarbeitung von Big Data (d. h. von riesigen Mengen unterschiedlicher Daten, die zu groß sind, um von herkömmlichen relationalen Datenbanken verarbeitet zu werden).
Da MongoDB schemalos ist, können unterschiedliche Datentypen gespeichert und im laufenden Betrieb abgerufen werden. Die in MongoDB integrierte Unterstützung für Sharding ermöglicht auch die horizontale Skalierung von Daten über mehrere Server hinweg. Außerdem bietet MongoDB die nötige Flexibilität, um Hunderte von Datenquellen in einer einzigen Ansicht für Echtzeit-Analysen und Datenintegration zusammenzufassen.
Content-Management
Das unstrukturierte Dokumentenmodell von MongoDB macht es zu einer hervorragenden Option für die Verwaltung und Bereitstellung von Inhalten auf E-Commerce-Websites, in Online-Publikationen und in Web-Content-Management-Systemen. Das flexible Datenmodell erleichtert das Speichern verschiedener Arten von Inhalten, einschließlich Bilder, Texte und Videos, sowie von Metadaten.
Alle zugehörigen Inhalte werden in einem einzigen Dokument gespeichert, sodass neue Funktionen und Attribute einfach hinzugefügt werden können. MongoDB kann auch zum Speichern von benutzergenerierten Inhalten wie Kommentaren verwendet werden, die analysiert und für die Entwicklung zukünftiger Inhalte genutzt werden können.
Antworten auf vier Fragen zu MongoDB
Was ist MongoDB bzw. MySQL?
MySQL ist ein Managementsystem für relationale Datenbanken (RDBMS, Relational DataBase Management System), das von Oracle gepflegt wird. Es verwendet eine strukturierte Abfragesprache (SQL, Structured Query Language), die Daten in vordefinierten Tabellen und Zeilen darstellt. MySQL benötigt den JOIN-Operator, um Daten aus zugehörigen Tabellen abzurufen. MySQL lässt keine effektive Replikation und kein Sharding zu.
MongoDB ist eine plattformübergreifende Open-Source-Datenbank, die von MongoDB, Inc. gepflegt wird. Es handelt sich um eine dokumentenbasierte Datenbank, die zum Ziel hat, die Datenanforderungen moderner Softwareanwendungen zu erfüllen. MongoDB verwendet JavaScript als Abfragesprache und stellt Daten als JSON-Dokumente dar. Es ist kein vordefiniertes Schema erforderlich, was bedeutet, dass Dokumente in derselben Sammlung unterschiedliche Strukturen haben können.
Ist MongoDB schneller als MySQL?
MySQL verwendet JOIN-Operationen, um auf verwandte Daten in mehreren Tabellen zuzugreifen und diese abzufragen. Dadurch wird zwar die Datenduplizierung minimiert, es geht aber mit Millionen von Lese- und Schreibvorgängen einher, die sich auf die Performance auswirken können.
Das Dokumentenmodell von MongoDB speichert zusammengehörige Daten gemeinsam, sodass Dokumente schneller als bei MySQL abgerufen werden können. Mithilfe von Slave- und Master-Replikation kann MongoDB große Mengen unstrukturierter Daten viel schneller verarbeiten als MySQL.
Wann sollten Sie MongoDB anstelle von MySQL verwenden?
Ob Sie sich für MongoDB oder MySQL entscheiden, hängt von Ihren spezifischen Anwendungsfällen und Geschäftsanforderungen ab, aber MongoDB bietet einige Vorteile gegenüber MySQL. Dazu gehören:
- Dokumentorientiertes Design: Da es sich bei MongoDB um eine NoSQL-Datenbank handelt, werden Daten nicht in einem relationalen Format gespeichert, sondern als Dokumente. Dadurch ist MongoDB flexibler und kann leichter an reale Geschäftsszenarien angepasst werden. Im Gegensatz dazu ist das relationale Datenschema von MySQL vordefiniert, weshalb es starr und unflexibel ist.
- Lastausgleich: MongoDB unterstützt den Lastausgleich durch Sharding, was eine horizontale Skalierung von Daten ermöglicht. Durch Sharding können Daten auf mehrere MongoDB-Instanzen und mehrere Server verteilt werden, um die Arbeitslast im Falle eines Hardwareausfalls auszugleichen oder die Performance zu verbessern.
- Ad-hoc-Abfragen MongoDB unterstützt Ad-hoc-Abfragen mit Suchen nach Feldern, Bereichsabfragen und Abfragen nach regulären Ausdrücken. Abfragen können spezifische Felder innerhalb eines Dokuments zurückgeben.
Welche Datenbank ist die beste: MySQL oder MongoDB?
MongoDB und MySQL sind von Grund auf unterschiedliche Datenbankmanagementsysteme, die sich jedoch beide in bestimmten Szenarien hervortun.
MongoDB ermöglicht es Unternehmen, Anwendungen schneller zu erstellen, und eignet sich für die Verarbeitung verschiedener Arten und großer Mengen von Daten. Verwenden Sie MongoDB, wenn Sie hohe Datenverfügbarkeit, Schema-Flexibilität, schnelle Skalierbarkeit oder die Fähigkeit benötigen, Big Data und Analyseanforderungen zu unterstützen.
MySQL ist die bessere Wahl, wenn Ihr Datenschema stabil ist und Sie keine unstrukturierten Daten speichern müssen. Verwenden Sie MySQL, wenn Sie eine hohe Transaktionsrate und die Sicherheit benötigen, die eine referenzielle Integrität mit sich bringt, oder wenn Sie eine Datenstruktur haben, die sich wahrscheinlich nicht ändern wird.
Open-Source-Datenbank-Workloads mit Pure beschleunigen
Mit automatischem Failover und horizontaler Skalierung ist MongoDB eine Open-Source-Datenbank, die für moderne Anwendungen entwickelt wurde. Das Dokumentdatenmodell unterstützt JSON und lässt sich problemlos auf objektorientierte Sprachen übertragen, was die Entwicklung vereinfacht. Seine Abfragesprache ist für Entwickler leicht zu erlernen und zu verwenden.
Modernisieren Sie Ihren Storage mit Pure Storage® FlashBlade®, der fortschrittlichsten All-Flash-Storage-Lösung der Branche zur Konsolidierung schneller Datei- und Objektdaten. FlashBlade bietet:
- Flexible Scale-out-Architektur: FlashBlade kann mit maximaler Performance und umfassenden Datenservices viele Milliarden Dateien und Objekte verarbeiten.
- Vereinfachte Workload-Konsolidierung: Bereitstellung, Aktualisierung und Verwaltung von FlashBlade mit Pure1®.
- All-Flash-Performance: Erzielen Sie eine massive Steigerung bei Durchsatz und Parallelität mit konsistenter multidimensionaler Performance durch den schnellen Datei- und Objekt-Storage von FlashBlade.