# MongoDB-Tutorial: Installation und Einstieg

Für gewöhnlich unterscheiden sich die verschiedenen Datenbankmodelle – SQL oder [NoSQL](https://www.ionos.at/digitalguide/hosting/hosting-technik/nosql/ "NoSQL") – in Sachen Konfiguration und Bedienung deutlich. Dass Sie bei der Nutzung einer NoSQL-Lösung allerdings nicht immer das gesamte, über die Jahre gesammelte Know-how über relationale Datenbanksysteme über den Haufen werfen müssen, stellt die Open-Source-Software MongoDB unter Beweis: Zwar grenzt sich die [dokumentenorientierte Datenbank](https://www.ionos.at/digitalguide/hosting/hosting-technik/dokumentenorientierte-datenbank/ "Dokumentenorientierte Datenbank") mit der flexiblen Speicherung der Daten klar von Klassikern wie MySQL ab, dennoch weisen die Modelle gewisse Ähnlichkeiten auf, die Sie in unserer [MongoDB Vorstellung](https://www.ionos.at/digitalguide/websites/web-entwicklung/mongodb-vorstellung-und-vergleich-mit-mysql/ "MongoDB: Vorstellung und Vergleich mit MySQL") nachlesen können. Auch wenn Abfragesprache und Befehlssyntax von MongoDB eine Umgewöhnung bedeuten, bereitet der Einstieg bzw. Umstieg erprobten SQL-Experten in der Regel keine großen Schwierigkeiten.

Im folgenden MongoDB-Tutorial setzen wir uns genauer mit der Installation, Konfiguration und Verwaltung des modernen Datenbanksystems **am Beispiel von Ubuntu** auseinander.

## Schritt 1: Installation

Sie finden die frei verfügbare Open-Source-Edition „Community Server“ ebenso wie die kommerziellen Enterprise-Lösungen im Download-Center auf der offiziellen[ MongoDB-Website](https://www.mongodb.com/download-center?jmp=nav#community "Hier geht’s zum Download von MongoDB für Windows, Linux und Co."). Im ersten Schritt sollten Sie also die **Installations- bzw. Binärdateien für Ihr System** **heraussuchen und herunterladen**. Da MongoDB plattformübergreifend ist, gibt es hier eine Auswahl aus verschiedenen Windows- und Linux-Systemen sowie OS X und Solaris. Auf einem Windows-Betriebssystem wird die Datenbank einfach mithilfe der heruntergeladenen Installationsdatei in das gewünschte Verzeichnis installiert. Windows-10-Nutzer können dafür die Version für Windows Server 2008 (64-bit) nehmen. Für Linux und Co. laden Sie wie üblich eine Archivdatei herunter, die Sie zunächst entpacken und im Anschluss mit dem Paketmanager installieren. Je nach Distribution müssen Sie unter Umständen zunächst den **MongoDB Public GPG Key importieren**. Für Ubuntu wird dieser Authentifizierungsschlüssel benötigt, weshalb Sie diesen mit folgendem Befehl implementieren müssen:

```none
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
```

Anschließend updaten Sie die Liste des Paketmanagers:

```none
sudo apt-get update
```

… und installieren MongoDB inklusive nützlicher Management-Tools:

```none
sudo apt-get install -y mongodb-org
```

## Schritt 2: Start des MongoDB-Servers

Das Standardinstallationsverzeichnis */var/lib/mongodb* und das Log-Verzeichnis */var/log/mongodb* können Sie optional in der **Konfigurationsdatei** */etc/mongod.conf* ändern. Mithilfe des folgenden Befehls starten Sie die Datenbank:

```none
sudo service mongod start
```

Verwenden Sie statt des Parameters *start* den Parameter *stop*, beenden Sie die **Ausführung der Datenbank**, *restart* sorgt für einen Neustart. Um zu überprüfen, ob MongoDB erfolgreich gestartet wurde, genügt ein Blick in das Logfile */log/mongodb/mongod.log*:

```none
[initandlisten] waiting for connections on port <port>
```

Die Zeile verrät Ihnen, dass der Datenbankserver in Betrieb ist und auf eingehende Verbindungen auf dem in der Konfigurationsdatei definierten **Port** (&lt;port&gt;) wartet. Standardmäßig wir hier Port 27017 verwendet.

## Schritt 3: Start des Clients

Wenn der MongoDB-Server läuft, können Sie den jeweiligen Client starten. Wir nutzen an dieser Stelle den standardmäßig enthaltenen Kommandozeilen-Client Mongo Shell, der auf JavaScript basiert und für die **Administration der Datenbank** sowie den **Zugriff und die** **Aktualisierung des Datenbestands** verwendet werden kann. Auf demselben System, auf dem die MongoDB-Anwendung ausgeführt wird, starten Sie den Client mit dem einfachen Terminal-Befehl:

```none
mongo
```

Automatisch verbindet sich die Mongo Shell nun mit der laufenden MongoDB-Instanz **auf dem lokalen Host und dem Port 27017**. Natürlich können Sie diese Standard-Verbindungseinstellungen mit den entsprechenden Parametern ebenfalls anpassen. Diese und einige weitere wichtige Optionen sind in der folgenden Tabelle zusammengefasst:

<table>
  <thead>
    <tr>
      <th>Parameter</th>
      <th>Beschreibung</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>--shell</td>
      <td>Aktiviert das Shell-Interface, wodurch Sie nach Ausführung eines Befehls die entsprechende Anzeige präsentiert bekommen.</td>
    </tr>
    <tr>
      <td>--nodb</td>
      <td>Verhindert, dass sich die Mongo Shell mit einer Datenbank verbindet.</td>
    </tr>
    <tr>
      <td>--port &lt;port&gt;</td>
      <td>Definiert den Port für die Verbindung.</td>
    </tr>
    <tr>
      <td>--host &lt;hostname&gt;</td>
      <td>Definiert den Host für die Verbindung.</td>
    </tr>
    <tr>
      <td>--help oder -h</td>
      <td>Zeigt Ihnen die Optionen an.</td>
    </tr>
    <tr>
      <td>--username &lt;username&gt; oder -u &lt;username&gt;</td>
      <td>Sind Zugangsberechtigungen definiert, melden Sie sich auf diese Weise mit dem jeweiligen Nutzernamen (&lt;username&gt;) an.</td>
    </tr>
    <tr>
      <td>--password &lt;password&gt; oder -p &lt;password&gt;</td>
      <td>Sind Zugangsberechtigungen definiert, melden Sie sich auf diese Weise mit dem jeweiligen Passwort (&lt;password&gt;) an.</td>
    </tr>
  </tbody>
</table>

Die hier verwendeten spitzen Klammern sind nicht Bestandteil des jeweiligen Parameters und erscheinen daher nicht im endgültigen Befehl. Für die Definition des Ports bedeutet das beispielsweise, dass Ihre Eingabe folgendermaßen aussieht, wenn Sie anstatt des Standard-Ports 27017 lieber den Port 40000 wählen wollen:

```none
mongo --port 40000
```

---

### Tipp: Managed MongoDB von IONOS

Mit **Managed** [**MongoDB von IONOS**](https://cloud.ionos.de/managed/dbaas/managed-mongodb?itc=2E5H5WQ0-HUKYUQ-LTP4SQO "Managed MongoDB von IONOS") können Sie sich auf das Wesentliche konzentrieren. Ob Installation, Betrieb oder Wartungsarbeiten, IONOS sorgt für einen zuverlässigen Betrieb Ihrer hochperformanten Datenbanken.

---

## Schritt 4: Eine Datenbank erstellen

Sobald MongoDB und der Client laufen, können Sie sich der Datenverwaltung und -bearbeitung widmen. Doch zuvor sollten Sie noch eine Datenbank erstellen – andernfalls werden die Sammlungen (Collections) und Dokumente in der automatisch erzeugten *test*-Datenbank gespeichert. Sie erzeugen eine Datenbank mit dem ***use*-Kommando**. Wollen Sie z. B. eine Datenbank mit dem Namen *meinedatenbank* erstellen, sieht der dazu passende Befehl so aus:

```none
use meinedatenbank
```

Mit dem Befehl *use* wählen Sie außerdem eine bereits existierende MongoDB-Datenbank aus, die Sie für die **Datenverarbeitung** nutzen möchten; mithilfe des kurzen Kommandos *db* überprüfen Sie, welche Datenbank derzeit ausgewählt ist.

## Schritt 5: Eine Collection erstellen

Im nächsten Schritt kreieren Sie eine erste Collection, also eine **Sammelmappe für die verschiedenen BSON-Dokumente**, in denen später die Daten gespeichert werden sollen. Die Basis-Syntax hat dabei dieses Muster:

```none
db.createCollection(<name>, { options } )
```

Der *create*-Befehl besitzt also die zwei Parameter *name* (Name der Collection) und *options* (optionale Optionen zum Konfigurieren der Collection). In den Optionen bestimmen Sie z. B., ob die in der Sammlung enthaltenen Dokumente in Ihrer Größe beschränkt sein sollen (*capped: true*) oder ob die Collection eine Begrenzung in Bytes (*size: &lt;number&gt;*) bzw. in der Anzahl an Dokumenten (*max: &lt;number&gt;*) besitzen soll. Eine Collection mit dem Namen *meinecollection*, einer Byte-Begrenzung von 6.142.800 und maximal 10.000 zugelassenen Dokumenten würden Sie beispielsweise mit folgendem Kommando erstellen (der Leerraum dient dabei einzig der Übersichtlichkeit):

```none
db.createCollection ("meinecollection", { capped: true,
    size: 6142800,
    max: 10000 } )
```

## Schritt 6: Dokumente in eine Collection einfügen

Nachdem die Sammelmappe angelegt wurde, können Sie diese mit Dokumenten füllen, wobei grundsätzlich drei verschiedene Methoden verfügbar sind:

- *.insertOne()*

- *.insertMany()*

- *.insert()*

Sie fügen per Befehl also entweder nur ein Dokument (*.insertOne*), verschiedene Dokumente (*.insertMany*) oder ein oder mehrere Dokumente (*.insert*) hinzu. Im folgenden Beispiel zeigen wir Ihnen einen einfachen **Datenbankeintrag**, der aus den drei Informationen Name, Alter und Geschlecht besteht und als Dokument in die in Schritt 5 angelegte Sammelmappe *meinecollection* eingefügt wird:

```none
db.meinecollection.insertOne(
{
        Name: "Name",
        Alter: 28,
        Geschlecht: "männlich"
    }
)
```

MongoDB erzeugt zu diesem und jedem weiteren Eintrag automatisch eine für die jeweilige Collection **einzigartige ID**.

## Schritt 7: Dokumente verwalten

Im letzten Schritt unseres MongoDB-Tutorials geht es um die grundlegende Verwaltung der angelegten Dokumente. Bevor Sie Veränderungen an den Dokumenten vornehmen können, müssen Sie diese zunächst **aufrufen**. Diese Abfrage gelingt mit dem *find*-Kommando und kann mit den optionalen Parametern *query filter* (Abfragefilter) und *projection* (Spezifikation des Anzeigeergebnisses) präzisiert werden. Um beispielsweise das im vorigen Schritt erzeugte Dokument aufzurufen, eignet sich der folgende Befehl:

```none
db.meinecollection.find( { Name: "Name", Alter: 28 } )
```

Wollen Sie dieses Dokument nun aktualisieren, benötigen Sie die *update*-Funktion. Hier definieren Sie den zu verändernden Wert, wählen einen **Update-Operator** und geben den veränderten Wert an. Wollen Sie z. B. das Feld *Alter* im genannten Beispiel anpassen, benötigen Sie den Operator *$set*:

```none
db.meinecollection.update(
{ Alter: 28 },
{
    $set: { Alter: 30 }
}
)
```

Die weiteren *update*-Operatoren finden Sie [hier](https://docs.mongodb.com/manual/reference/operator/update/ "MongoDB-Docs – Update Operatoren für Datenbankeinträge").

Um die Dokumente einer Collection zu löschen, nutzen Sie das *remove*-Kommando:

```none
db.meinecollection.remove ()
```

Ebenso gut können Sie einzelne Dokumente der Sammlung entfernen, indem Sie Kriterien wie die ID oder genaue Werte definieren und MongoDB damit signalisieren, um welche **Datenbankeinträge** es sich handelt. Je spezifischer Sie dabei sind, desto exakter kann das Datenbanksystem beim Löschungsprozess agieren. Der Befehl

```none
db.meinecollection.remove ( { Alter: 28 } )
```

löscht zum Beispiel alle Einträge, die den Wert 28 für das Feld „Alter“ besitzen. Sie können auch angeben, dass einzig der erste Eintrag, auf den diese Eigenschaft zutrifft, entfernt werden soll, indem Sie den sogenannten ***justOne*-Parameter** (1) einfügen:

```none
db.meinecollection.remove ( { Alter: 28 }, 1 )
```

Weitere Informationen wie beispielsweise über die Nutzeradministration, Sicherheitseinstellungen, die Erstellung von Replica oder die Verteilung der Daten auf mehrere Systeme erhalten Sie in der offiziellen Dokumentation auf [mongodb.com](https://docs.mongodb.com/manual/ "MongoDB Manual – Alle Informationen zur dokumentenbasierten Datenbank") sowie im MongoDB-Tutorial auf [tutorialspoint.com](http://www.tutorialspoint.com/mongodb/index.htm "tutorialspoint – Einstiegshilfen und professionelle Tipps für MongoDB").


This is a markdown version of: [https://www.ionos.at/digitalguide/websites/web-entwicklung/mongodb-tutorial-installation-und-einstieg/](https://www.ionos.at/digitalguide/websites/web-entwicklung/mongodb-tutorial-installation-und-einstieg/) for AI/LLM consumption.