MongoDB installieren auf OSX und die ersten Schritte

mongodb

MongoDB NoSQL Datenbank

MongoDB ist eine No SQL Datenbank, die eine Sammlung von von JavaScript ähnlichen Dokumenten in physikalische Einheiten verwalten kann. Die physikalischen Einheiten werden bei Mongo DB Collections genannt. Diese Collection können beliebige Dokumente aufnehmen. Mongo DB stehen auch verschiedene Datentypen, wie bei den relationalen Datenbanken zur Verfügung. Durch eine Menge von Methoden können die Datenbanken, durchsucht, geändert oder auch entfernt werden.

Installation

MongoDB wird sowohl als Open Source als auch als kostenpflichtige, kommerzielle Version zum Download angeboten. Der Mehrwert einer kommerziellen Version liegt in dem angebotenen professionellen Support sowie einer umfangreichen Funktionalität. Zum Beispiel werden hier interessante Features wie etwa der Kerberos Support, der es ermöglicht MongoDB etw in eine active directory Struktur zu integrieren. Zum Download hier: MongoDB
Da sich dieser Inhalt auf die Open Source Version wechseln wir auf die Website www.mongodb.org und laden die passende MongoDB Distribution für das passende Platform und Version.
Das heruntergeladene Paket soll dann in das bin Verzeichnis entpackt und kopiert werden.

MongoDB Verzeichnis
Verzeichnis von MongoDB

Vor dem MongoDB start sollte noch ein
eine Datei mit /data/db angelegt werden, damit keine Fehlermeldung seitens MongoDB kommt. Das liegt daran, dass MongoDB schon beim ersten start versucht in diesen Pfad eine Datenbank anzulegen bzw. von da aus zu starten. Analog könnte das auch dadurch geändert werden, dass man den DB Path umsetzt oder ändert, aber die erste Variante ist an dieser Stelle etwas einfacher.

Fehlermeldung mongodb
Fehlermeldung beim ersten Start von mongoDB ohne die data/db angelegt zu haben

Einfach im Terminal über den Root-User die Ordner mit folgendem Befehl anlegen.
Terminal Befehl

Nachdem auch diese Ordner angelegt worden sind, kann die MongoDB nun gestartet werden und es sollte dann ungefähr so ähnlich wie folgende Screenshot sein. Die Datenbank läuft auf dem Default Port 27017.

Ausgabe_mongodb_Terminal
Terminal Ausgabe bei erfolgreichem start von mongoDB

Mit dbstats() können statistische Informationen über den Server abgerufen werden.
MongoDB_Befehl_stats()

Nun das war die Installation von MongoDB und auch schonmal die ersten Gehversuche auf der MongoDB Shell.

Datenbanken und Collections

Datenbanken in MongoDB sind physikalische Einheiten in denen die Daten gespeichert werden. Um diese anzuzeigen nutzt man den Befehl

show databases

und mit

use Datenbankname

wechselt man dann in die Datenbank oder wenn diese noch nicht existiert wird diese implizit neu angelegt.
Folgendes Statement zeigt, wie in der Collection adressen ein leeres Objekt angelegt wird.

db.adresses.insert( { } )

Mit der Methode find( ) lassen sich alle Datensätze anzeigen die sich in der Collection befinden. Der MongoDB ist es ganz egal, was in der Collection angelegt wird, da sie ja eine schemalose Datenbank ist. Die Collection ist zuzusagen ein Hilfskonstrukt um eine Struktur in der Datenbank zu gewährleisten. Wichtig ist das bei MongoDB die Datenbank ein physikalischer Element ist und die Collection ein logisches Element mit der sich die Daten innerhalb der Datenbank strukturieren lassen.

JavaScript-Objekte in MongoDB speichern

In MongoDB werden JavaScript Objekte einfach in die Datenbank gespeichert. Eigentlich geht es dabei um JSON Dateien oder genauer gesagt BSON. BSON steht für Binary JSON und lässt einfacher Binär Daten in die Datenbank abspeichern ohne es umzuwandeln wie bei JSON. Da die MongoDB Shell mit JavaScript arbeitet, können komplexe Objekte erstellt werden. Ein Beispiel kann folgend aussehen:

aysun = {name: „Aysun“, tags: [„Trainer“, „NoSQL“]}

und dann in der Collection „adressen“ ablegen.

db.adresses.insert(aysun)

Durch die Nutzung von BSON kann MongoDB zusätzlich zu Springs und Zahlen weitere Datentypen zur Verfügung stellen.

BSON Objekt
Ein BSON Objekt wie es bei JSON nicht gehen würde

1 Comment

Leave a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert