29 Arbeiten mit der MongoDB Shell

29.1 Grundlagen

Die MongoDB Shell (mongosh) ist eine moderne, interaktive JavaScript-Umgebung, die es Entwicklern und Administratoren ermöglicht, direkt mit MongoDB-Instanzen und -Clustern zu interagieren. Sie ersetzt die ältere mongo Shell und bietet erweiterte Funktionen wie Syntax-Hervorhebung, Autovervollständigung und Unterstützung für moderne JavaScript-Syntax.


29.2 Nutzung der Shell

29.2.1 Starten der Shell

Verbinden Sie sich mit einer MongoDB-Instanz:

mongosh

Die Shell versucht, sich mit dem Standardhost (localhost) und -port (27017) zu verbinden. Für Remote-Verbindungen:

mongosh "mongodb://<HOST>:<PORT>"

29.3 Grundlegende Befehle

29.3.1 Arbeiten mit Datenbanken

29.3.2 Interaktion mit Dokumenten

29.3.3 Hilfsfunktionen


29.4 Erweiterte Funktionen in mongosh

29.4.1 Syntax-Hervorhebung

Befehle, Operatoren und Fehler werden farblich hervorgehoben, um die Lesbarkeit und das Debugging zu erleichtern.

29.4.2 Autovervollständigung

Drücken Sie die Tabulatortaste, um verfügbare Methoden oder Felder anzuzeigen:

db.collection.<TAB>

29.4.3 Asynchrone Operationen

mongosh unterstützt moderne JavaScript-Syntax wie async/await:

async function fetchData() {
  const data = await db.meineSammlung.findOne({ name: "Max" });
  console.log(data);
}
fetchData();

29.5 Methodenverkettung

Methoden können kombiniert werden, um komplexere Abfragen durchzuführen:

db.meineSammlung.find({ alter: { $gt: 25 } }).sort({ name: 1 }).limit(5);

29.6 Arbeiten mit externen Editoren

Für längeren Code oder Mehrzeilen-Skripte: 1. Starten Sie den Editor: javascript .editor 2. Schreiben Sie Ihren Code, speichern Sie und schließen Sie den Editor. Der Code wird direkt ausgeführt.


29.7 Snippets (Code-Schnipsel)

Speichern und verwenden Sie häufig genutzten Code: - Speichern eines Snippets: javascript snippets.save("findMax", "db.meineSammlung.find({ name: 'Max' })", "Findet alle Max"); - Ausführen eines Snippets: javascript snippets.run("findMax");


29.8 Telemetrie

Die Telemetrie erfasst anonymisierte Nutzungsdaten zur Verbesserung der Shell. Sie kann aktiviert oder deaktiviert werden:

enableTelemetry();
disableTelemetry();

29.9 Unterschiede zwischen mongosh und mongo

Funktion mongo mongosh
Syntax-Hervorhebung
Autovervollständigung
Async/await-Unterstützung
Bessere Fehlermeldungen
Editor-Integration