MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Warum MongoDB – 10 Gründe, MongoDB für 2022 zu lernen

Da wir in der heutigen Welt sehen, dass die meisten Menschen zu MongoDB wechseln, gibt es immer noch viele, die es vorziehen, eine traditionelle relationale Datenbank zu verwenden. Hier werden wir erörtern, warum wir uns für MongoDB entscheiden sollten. Wie jede Münze zwei Gesichter hat, hat sie ihre eigenen Vorteile und Einschränkungen.

Sind Sie also bereit, die Gründe für das Erlernen von MongoDB zu erkunden?

Warum MongoDB?

Da es sich um eine NoSQL-Datenbank handelt, gibt es viele Gründe, MongoDB zu lernen. Diese Gründe haben die Stiftung zur weltweiten Popularität von MongoDB geführt.

Dies sind einige Gründe, warum MongoDB so beliebt ist.

  • Aggregations-Framework
  • BSON-Format
  • Sharding
  • Ad-hoc-Abfrage
  • Begrenzte Sammlung
  • Indizierung
  • Dateispeicherung
  • Replikation
  • MongoDB-Verwaltungsdienst (MMS)

Die wichtigsten Gründe, MongoDB zu lernen

i) Aggregationsrahmen

Wir können es auf sehr effiziente Weise von MongoDB verwenden. MapReduce kann für die Stapelverarbeitung von Daten und auch für Aggregationsvorgänge verwendet werden. MapReduce ist nichts anderes als ein Prozess, bei dem große Datenmengen mit Hilfe von parallelen und verteilten Algorithmen auf Clustern verarbeitet und Ergebnisse generiert werden.

Es besteht selbst aus zwei Gruppen von Operationen:Map() und Reduce().

  • Karte(): Es führt Vorgänge wie das Filtern der Daten und das anschließende Sortieren dieses Datensatzes durch.
  • Reduce(): Es führt die Operation zum Zusammenfassen aller Daten nach der map()-Operation durch.

Aggregations-Framework

ii) BSON-Format

Es ist ein JSON-ähnliches Speicherformat. BSON steht für Binary JSON . BSON ist eine binär codierte Serialisierung von JSON wie Dokumente und MongoDB verwendet es, wenn Dokumente in Sammlungen gespeichert werden sollen. Wir können Datentypen wie Datum und Binärdatei hinzufügen (JSON wird nicht unterstützt).

Das BSON-Format verwendet hier _id als Primärschlüssel. Wie bereits erwähnt, wird _id als Primärschlüssel verwendet, sodass ihr ein eindeutiger Wert zugeordnet ist, der als ObjectId bezeichnet wird und entweder vom Anwendungstreiber oder vom MongoDB-Dienst generiert wird.

Unten ist ein Beispiel, um das BSON-Format besser zu verstehen:

Beispiel-

{
"_id": ObjectId("12e6789f4b01d67d71da3211"),
"title": "Key features Of MongoDB",
"comments": [
...
]
}

Ein weiterer Vorteil der Verwendung des BSON-Formats besteht darin, dass es die interne Indizierung und Zuordnung von Dokumenteigenschaften ermöglicht. Da es auf eine effizientere Größe und Geschwindigkeit ausgelegt ist, erhöht es den Lese-/Schreibdurchsatz von MongoDB.

iii. Sharding

Das Hauptproblem bei jeder Web-/Mobilanwendung ist die Skalierung. Um dies zu überwinden, hat MongoDB eine Sharding-Funktion hinzugefügt. Es ist eine Methode, bei der Daten auf mehrere Maschinen verteilt werden. Horizontale Skalierbarkeit wird mit dem Sharding bereitgestellt.

Es ist ein komplizierter Prozess und wird mit Hilfe mehrerer Shards durchgeführt. Jeder Shard enthält einen Teil der Daten und fungiert als separate Datenbank . Das Zusammenführen aller Shards bildet eine einzige logische Datenbank. Operationen hier drüben werden von Abfrageroutern durchgeführt.

iv. Ad-hoc-Abfragen

MongoDB unterstützt Bereichsabfragen, reguläre Ausdrücke und viele weitere Suchtypen. Abfragen enthalten benutzerdefinierte Javascript-Funktionen und können auch bestimmte Felder aus den Dokumenten zurückgeben. MongoDB kann Ad-hoc-Abfragen unterstützen, indem es eine eindeutige Abfragesprache verwendet oder BSON-Dokumente indexiert.

Sehen wir uns den Unterschied zwischen der SQL SELECT-Abfrage und der ähnlichen Abfrage an:

Z.B. Abrufen aller Datensätze der Schülertabelle mit Schülernamen wie ABC.

  • SQL-Anweisung – SELECT * FROM Students WHERE stud_name LIKE ‘%ABC%’;
  • MongoDB-Abfrage – db.Students.find({stud_name:/ABC/ });

v. Schemalos

Da es sich um eine schemalose Datenbank handelt (in C++ geschrieben), ist sie viel flexibler als die traditionelle Datenbank. Aus diesem Grund müssen die Daten nicht viel für sich selbst eingerichtet werden und die Reibung mit OOP wird verringert. Wenn Sie ein Objekt speichern möchten, serialisieren Sie es einfach in JSON und senden Sie es an MongoDB.

vi. Begrenzte Sammlungen

MongoDB unterstützt begrenzte Sammlungen, da es eine feste Sammlungsgröße hat drin. Es behält die Insertionsreihenfolge bei. Sobald das Limit erreicht ist, verhält es sich wie eine kreisförmige Warteschlange.

Beispiel – Begrenzung unserer begrenzten Sammlung auf 2 MB

  • db.createCollection(’logs’, {capped:true, size:2097152})

viii. Indizierung

Zur Verbesserung der Suchleistung werden Indizes erstellt . Wir können jedes Feld im MongoDB-Dokument entweder primär oder sekundär indizieren.

Aus diesem Grund kann die Datenbank-Engine Abfragen effizient auflösen.

Indizierung

viii. Dateispeicher

MongoDB kann auch als Dateispeichersystem verwendet werden, wodurch ein Lastungleichgewicht und auch eine Datenreplikation vermieden werden. Diese Funktion wird mit Hilfe des Grid File System ausgeführt , es ist in Treibern enthalten, die Dateien speichern.

Dateispeicherung in MongoDB

ix. Replikation

Die Replikation wird durch die Verteilung von Daten auf verschiedene Maschinen bereitgestellt. Es kann einen Primärknoten und mehr als einen Sekundärknoten enthalten (Replikatsatz).

Dieses Set verhält sich wie ein Master-Slave. Hier kann ein Master Lese- und Schreibvorgänge durchführen und ein Slave kopiert Daten von einem Master nur als Backup für einen Lesevorgang.

Replikation

x. MongoDB-Verwaltungsdienst (MMS)

MongoDB verfügt über eine sehr leistungsstarke MMS-Funktion, mit der wir unsere Datenbanken oder Maschinen verfolgen und bei Bedarf unsere Daten sichern können. Es verfolgt auch Hardwaremetriken für die Verwaltung der Bereitstellung.

Es bietet eine benutzerdefinierte Warnfunktion, mit der wir Probleme erkennen können, bevor unsere MongoDB-Instanz betroffen ist.

MongoDB-Verwaltungsdienst (MMS)

Vorteile von MongoDB

Dies ist die zweite Phase von Warum MongoDB, Vorteile.

i. Lastenausgleich

Wenn Sie eine große Menge an Daten verarbeiten müssen, können Sie den Datenverkehr mit Hilfe des Lastausgleichs auf verschiedene Computer verteilen.

Es hilft dem Benutzer so, dass Sie Ihre Arbeit fortsetzen können, auch wenn einer der Knoten/Maschinen aus irgendeinem Grund nicht mehr funktioniert. Die anderen Knoten werden die Arbeit in einer Fortsetzung halten und Ihre Verarbeitung wird nicht aufhören.

Lastenausgleich

ii. Sharding

Mit Hilfe von Sharding können wir horizontal skalieren. Was mit Hilfe einer relationalen Datenbank nicht möglich ist. Durch die Verwendung dieser Methode können wir Daten auf verschiedene Computer verteilen.

Wir erstellen Shards der Daten, die wir bei uns haben, und versuchen dann, die Verarbeitungsaufgabe ein wenig zu vereinfachen.

Sharding in MongoDB

iii. Flexibilität

Es erfordert keine Datenstrukturen, die in ihrer Art über alle verwendeten Objekte hinweg einheitlich sind. Dies erleichtert die Verwendung von MongoDB. Mit Hilfe des dynamischen Schemas ist es sehr einfach, MongoDB zu verwenden.

Flexibilität

iv. Geschwindigkeit

MongoDB kann die Daten schnell und einfach verarbeiten. Dies gilt jedoch, solange Ihre Daten im Dokumentformat vorliegen. Wir können sagen, dass die Geschwindigkeit automatisch zunimmt, da es eine große Menge unstrukturierter Daten innerhalb von Sekunden verarbeitet, was sich wie Magie anfühlt.

Vor- und Nachteile von MongoDB

Nachteile/Einschränkungen von MongoDB

Dies ist diedritte Phase von Why MongoDB , Einschränkungen.

i. Speichernutzung

Da wir wissen, dass MongoDB den Schlüsselnamen zusammen mit jedem Dokument speichert, ist es offensichtlich, dass es eine große Menge an Speicher verbraucht. Und da Verknüpfungen ebenfalls nicht möglich sind, wird es sehr schwierig, mit doppelten Daten zu arbeiten.

Speichernutzung

ii. Keine Verknüpfungen

Da wir Joins sehr einfach in der relationalen Datenbank anwenden, ist es nicht möglich, Joins in MongoDB anzuwenden. Wenn Sie also Verknüpfungen darin anwenden möchten, müssen Sie viele komplexe Abfragen schreiben, um die Verknüpfungsoperation hier auszuführen.

iii. Noch in der Entwicklung

SQL wurde entwickelt in den 1980er Jahren und MongoDB ist erst 2009 aufgetaucht. Aus diesem Grund ist MongoDB noch nicht vollständig dokumentiert oder getestet und wird nicht vollständig von den Experten unterstützt.

Zusammenfassung

Nachdem Sie es gelesen haben, können Sie sich also ein Bild davon machen, warum wir es verwenden sollten, welche Vor- und Nachteile es hat. Wenn Sie außerdem Fragen haben, können Sie diese gerne im Kommentarbereich unten stellen. Wir helfen Ihnen gerne weiter.