Linux Server setup

MongoDB installieren

In diesem Kapitel werden wir die NoSQL Datenbank MongoDB installieren und einrichten.

Die Community Version ist kostenlos und wahrscheinlich für die allermeisten Projekte völlig ausreichend.


MongoDB installieren

Die Datenbank MongoDB installieren wir in mehreren Schritten. Ich empfehle auf der offiziellen Seite nach der aktuellsten Version zu schauen.


__$ sudo apt-get update
__$ sudo apt-get install gnupg
__$ wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
__$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
__$ sudo apt-get install -y mongodb-org
 

Öffnen wir mal die Hauptkonfigurationsdatei von MongoDB mit less.


__$ sudo less /etc/mongod.conf

/etc/mongod.conf


# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

In der Ausgabe können wir sehen:

  • Daten: /var/lib/mongodb
  • Logdatei: /var/log/mongodb/mongod.log
  • Adresse: 127.0.0.1
  • Port: 27017

Die Version kann mit --version abgefragt werden:


__$ mongo --version


MongoDB deinstallieren

Wie MongoDB deinstalliert wird, soll hier nur der Vollständigkeit halber beschrieben werden.

MongoDB stoppen:


__$ sudo systemctl stop mongod
 

MongoDB deinstallieren:


__$ sudo apt-get purge mongodb mongodb-clients mongodb-server mongodb-dev
__$ sudo apt-get purge mongodb-org*
__$ sudo apt-get autoremove
 

MongoDB Daten und Logs löschen:


__$ sudo rm -r /var/lib/mongodb
__$ sudo rm -r /var/log/mongodb
 

Standard Befehle zu MongoDB

MongoDB starten:


__$ sudo systemctl start mongod

MongoDB stoppen:


__$ sudo systemctl stop mongod

MongoDB neustarten:


__$ sudo systemctl restart mongod

MongoDB Status:


__$ sudo systemctl status mongod

MongoDB Shell über die Kommandozeile

MongoDB Konsole starten:


__$ mongo

Die MongoDB Shell:


MongoDB shell version v5.0.4
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("2546fe7e-f27b-47c5-bde4-a486830256a9") }
MongoDB server version: 5.0.4
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
        https://community.mongodb.com
---
The server generated these startup warnings when booting:
        2022-01-03T12:53:35.053+00:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2022-01-03T12:53:36.787+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
        Enable MongoDB's free cloud-based monitoring service, which will then receive and display
        metrics about your deployment (disk utilization, CPU, operation statistics, etc).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you
        and anyone you share the URL with. MongoDB may use this information to make product
        improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring, run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>

Alle Datenbanken anzeigen:


__gt show databases;

Zur Datenbank admin wechseln:


__gt use admin;

Einen neuen Benutzer namens admin mit allen Privilegien anlegen:


__gt db.createUser({
  user: "admin",
  pwd: "MyPassword",
  roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
});

Eine neue Datenbank anlegen:


__gt use MyDatabase;

Eine neu angelegte Datenbank wird durch show databases; nicht angezeigt, solange sie leer ist!

Eine Collection mit einem Dokument einfügen:


__gt db.MyCollection.insert({ key: "val" });

Collections auflisten:


__gt show collections;

Inhalt einer Collection auflisten:


__gt db.MyCollection.find().pretty();

pretty() ist ein Zusatz, um die Ausgabe strukturiert und leserlicher darzustellen.

Weiteres Dokument einfügen:


__gt db.MyCollection.insert({ key: "val2" });

Einzelnes Dokument löschen:


__gt db.MyCollection.deleteOne({ key: "val2" });

Statistiken der aktuellen Datenbank ausgeben:


__gt db.stats();

Collection löschen:


__gt db.MyCollection.drop();

Aktuelle Datenbank löschen:


__gt db.dropDatabase();

Die MongoDB Shell verlassen:


__gt exit