Database Reference
In-Depth Information
3 MongoDB
Zwischen CouchDB und MongoDB gibt es einige Parallelen, aber auch durchaus grundle-
gende Unterschiede. Hinter MongoDB steht die in New York ansässige Firma 10gen [1] ,
die seit 2007 das Datenbanksystem und die wichtigsten Treiber entwickelt. MongoDB steht
unter der GNU AGPL v3.0, die Treiber unter der Apache-Lizenz v2.0. MongoDB ist in C++
programmiert und benutzt ein eigenes Protokoll zur Kommunikation auf dem Port 27017.
Wie MySQL wird die Datenbank über Treiber für die jeweilige Sprache angesprochen (im
Gegensatz zu CouchDB, bei der die Kommunikation per HTTP und REST statt findet). Die
Entwicklung des PHP-Treibers erfolgt durch Kristina Chodorow [2]. MongoDB gehört zu
den schemalosen dokumentorientierten Datenbanken, also ohne eine feste Struktur der Da-
ten innerhalb eines Datensatzes. Das Datenformat für Dokumente ist BSON ( Binaray JSON ),
eine Erweiterung von JSON um einige binäre Typen, z. B. Datum und JavaScript. Im Ge-
gensatz zu anderen NoSQL-Datenbanken besteht bei MongoDB die Möglichkeit zu dynami-
schen Abfragen. Während bei CouchDB durch Definition der Views im Vorfeld die Abfra-
gen festgelegt sind, kann bei MongoDB jederzeit eine Ad-hoc-Abfrage ausgeführt werden.
Zur Abfrage und Aggregation bei map/reduce nutzt MongoDB intern JavaScript. Ein wei-
terer Unterschied zu CouchDB besteht in der Art der dauerhaften Datenspeicherung. Wäh-
rend CouchDB jede Änderung sofort auf die Festplatte schreibt, nutzt MongoDB das „Lazy
writes“-Prinzip. Alle Änderungen werden sofort im Speicher umgesetzt, in einem Intervall
von ca. einer Sekunde werden die Änderungen dauerhaft auf den Massenspeicher geschrie-
ben. Insgesamt besticht MongoDB durch einen hohen Funktionsumfang, der den Einstieg
insgesamt etwas leichter als bei CouchDB macht.
BSON-Datentypen
Standard-JSON:
▪ String
▪ Integer
▪ Boolean
▪ Double
▪ Min/Max Key
▪ Array
▪ Timestamp
▪ Object
Search WWH ::




Custom Search