Erste Schritte mit MongoDB und NodeJS: Verbindung herstellen

Erste Schritte mit MongoDB und NodeJS: Verbindung herstellen

Weiter geht es mit meiner NodeJS-Reihe und heute möchte ich mich MongoDB widmen. Mongo erfreut sich großer Beliebtheit, weil es als NoSQL Datenbank skalierbar ist und vor allem in Kombination mit NodeJS einen schnellen und sehr einfachen Einstieg ermöglicht. Lasst uns direkt starten.

MongoDB installieren

Bevor es losgeht, müssen wir zunächst einige Vorarbeit leisten. Da ich übrigens MacOS nutze, ist die Installations-Anleitung an Mac-User gerichtet. Im Netz finden sich allerdings zahlreiche Anleitung für Windows-Nutzer.

Im ersten Schritt laden wir uns Mongo unter mongodb.com für unser OS herunter und entpacken das tgz-Archiv. Das entpackte Verzeichnis verschieben wir an einen Ort unserer Wahl. In meinem Fall in das persönliche User-Verzeichnis.

/Users/kermin/mongodb

Neben diesem Ordner brauchen wir zusätzlich noch einen weiteren Ordner für die Daten, die später von MongoDB gespeichert werden. Dazu legen wir einen neuen Ordner in das Nutzer-Verzeichnis an.

/Users/kermin/mongodb-data

Nun gehen wir über in unser Termin und navigieren in das root-Verzeichnis mit:

cd ~

Jetzt können wir MongoDB initialisieren, indem wir den Daten-Pfad mitgeben.

 /Users/kermin/mongodb/bin/mongod --dbpath=/Users/kermin/mongodb-data

MongoDB ist jetzt über den localhost und Port 27017 erreichbar.

Robo 3T installieren

Robo 3T ist eine MongoDB GUI, mit der wir die Möglichkeit haben unsere Datenbankeinträge zu visualisieren. Dazu laden wir Robot 3T herunter und nutzen den Installer zur Installation. Danach können wir eine Verbindung via localhost:27017 zu unserer Datenbank herstellen.

Robo 3T Shell Eingabe

Um die Verbindung zu testen, lässt sich über einen Rechtsklick auf die Datenbank im Verzeichnisbaum, die Robo 3T Shell öffnen, in der wir folgendes eingeben:

db.version()

Über das grüne „Play“-Symbol lässt sich der Befehl ausführen. Ist alles korrekt eingestellt, sollte MongoDB mit einer Versionsnummer antworten.

NodeJS Connection

Nachdem wir die Datenbank aufgesetzt haben, können wir dazu übergehen, mit NodeJS eine Verbindung herzustellen. Am einfachen geht dies mit dem npm Package mongodb.

npm install mongodb

Nach der Installation, können wir das Package in unser Projekt importieren. In der ausführenden Datei, bei mir app.js, erstellen wir nach dem Import noch zusätzlich eine neue MongoClient Instanz, mit der wir in der Lage sein werden eine Verbindung zur Datenbank aufzubauen.

const mongodb = require('mongodb')

const MongoClient = mongodb.MongoClient

Bevor wir aber eine Verbindung herstellen können, müssen wir zunächst die URL sowie den Datenbanknamen konfigurieren:

const connectionURL = 'mongodb://127.0.0.1:27017'
const databaseName = 'customDatabaseName'

Der Name ist frei wählbar. Es empfiehlt sich bei der URL nicht „localhost“ zu nutzen, da es aktuell zu Bugs kommen kann. Als Workaround sollte die lokale IP-Adresse 127.0.0.1 verwendet werden.

Mit der von der MongoClient-Instanz bereitgestellten Funktion connect, lässt sich nun eine Verbindung herstellen. Die Funktion erwartet zwei Argumente. In diesem Fall sind es sogar drei.

MongoClient.connect(connectionURL, { useNewUrlParser: true }, (error, client) => {
  // tbd
})

Das erste Argument ist die URL zur Datenbank, das zweite ist aktuell nur ein Fix, da der alte URL-Parser des mongodb Clients veraltet ist und in Zukunft nicht mehr unterstützt wird. Das dritte und letzte Argument ist eine Callback-Funktion mit den Parametern error und client.

Nun können wir die Verbindung testen und wollen direkt eine Collection erzeugen (bei SQL würde man von einer Tabelle sprechen). Dieser wiederum möchten wir ein Dokument (SQL: Zeile/Row) hinzufügen mit zwei Feldern (SQL: Spalten).

Basic MongoDB Connection with NodeJS

Nach einem kurzen Error-Handling, übergeben wir den Datenbanknamen an die db-Funktion des Callback-Parameters client und speichern dies als db ab. Jetzt haben wir Zugriff auf weitere Funktionen, darunter collection, mit der wir über insertOne unser Feld mit den Key-Value-Pairs in das Dokument eintragen.

Damit haben wir nicht nur eine Verbindung aufgebaut, sondern fügen sogar unseren ersten Eintrag in die Datenbank ein. Zeit für einen Testlauf!

node app.js

Nachdem wir den Code im Termin ausgeführt haben, werfen wir einen Blick in Robo 3T. Mit einem Rechtsklick auf das Root-Verzeichnis lassen wir uns mit „Refresh“ die Einträge aktualisieren und nun sollten wir sowohl unsere Datenbank customDatabaseName als auch den Eintrag in der collection users sehen.

MongoDB Collection & Document

Großartig! Wir haben unsere erste Datenbank in MongoDB erstellt, eine Verbindung mit NodeJS aufgebaut und einen Eintrag erzeugt!

Ich hoffe dieser Artikel war hilfreich und hat Dir gefallen. Solltest du Fragen oder Anmerkungen haben, dann schreibe sie gerne in die Kommentare!

Schreibe einen Kommentar

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

Nächster Beitrag:

Einfache REST API mit NodeJS und Express erstellen

Einfache REST API mit NodeJS und Express erstellen