MongoDB - Übersicht
MongoDB ist eine plattformübergreifende, dokumentenorientierte Datenbank, die hohe Leistung, hohe Verfügbarkeit und einfache Skalierbarkeit bietet. MongoDB arbeitet am Konzept der Sammlung und des Dokuments.
Datenbank
Die Datenbank ist ein physischer Container für Sammlungen. Jede Datenbank erhält ihre eigenen Dateien im Dateisystem. Ein einzelner MongoDB-Server verfügt normalerweise über mehrere Datenbanken.
Sammlung
Die Sammlung ist eine Gruppe von MongoDB-Dokumenten. Dies entspricht einer RDBMS-Tabelle. Eine Sammlung existiert in einer einzelnen Datenbank. Sammlungen erzwingen kein Schema. Dokumente innerhalb einer Sammlung können unterschiedliche Felder haben. In der Regel haben alle Dokumente in einer Sammlung einen ähnlichen oder verwandten Zweck.
Dokument
Ein Dokument besteht aus einer Reihe von Schlüssel-Wert-Paaren. Dokumente haben ein dynamisches Schema. Dynamisches Schema bedeutet, dass Dokumente in derselben Sammlung nicht denselben Satz von Feldern oder dieselbe Struktur haben müssen und dass gemeinsame Felder in den Dokumenten einer Sammlung unterschiedliche Datentypen enthalten können.
Die folgende Tabelle zeigt die Beziehung der RDBMS-Terminologie zu MongoDB.
RDBMS | MongoDB |
---|---|
Datenbank | Datenbank |
Tabelle | Sammlung |
Tupel / Reihe | Dokument |
Säule | Feld |
Tabellenverknüpfung | Eingebettete Dokumente |
Primärschlüssel | Primärschlüssel (Standardschlüssel _id von MongoDB selbst bereitgestellt) |
Datenbankserver und Client | |
mysqld / Oracle | mongod |
mysql / sqlplus | Mongo |
Beispieldokument
Das folgende Beispiel zeigt die Dokumentstruktur einer Blog-Site, bei der es sich lediglich um ein durch Kommas getrenntes Schlüsselwertpaar handelt.
{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
_idist eine hexadezimale Zahl von 12 Byte, die die Eindeutigkeit jedes Dokuments sicherstellt. Sie können _id beim Einfügen des Dokuments angeben. Wenn Sie dies nicht angeben, stellt MongoDB für jedes Dokument eine eindeutige ID bereit. Diese 12 Bytes, die ersten 4 Bytes für den aktuellen Zeitstempel, die nächsten 3 Bytes für die Maschinen-ID, die nächsten 2 Bytes für die Prozess-ID des MongoDB-Servers und die verbleibenden 3 Bytes sind einfache inkrementelle VALUE.