Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Im Serverseitigen Script Modus können Mongo-Shell Befehle ausgeführt werden. Die Eingaben werden von der Anwendung nicht formatiert oder modifiziert, sondern unverändert an die db.command() Funktion des MongoDB node.js Treibers weitergeleitet. 

Tipp

Hier findet man die Dokumentation der Mongo-Shell Befehle: http://docs.mongodb.org/manual/core/crud-introduction/

Codeblock
themeEmacs
languagejs
// Liefert alle Datensätze
db.zipcode.find();
 
// Liefert alle Städtename und sortiert danach
db.zipcode.find({}, {city: 1}).sort({city: 1})
 
// Erstelle einen neuen zipcode Datensatz
db.zipcode.insert({_id: '99999', city: 'LEIPZIG', pop: 520838, state: 'SN'})
 
// Analysieren der Abfrage
db.zipcode.find().explain()
 
// Zeige die Statistiken der Collection
db.zipcode.stats();
Warnung

Im Serverseitigen Script Modus gibt es keinen Pager. Daher werden bei jeder Abfrage alle Datensätze geladen. Da dies unter Umständen eine sehr große Datenmenge sein kann, wird die Ergebnismenge auf 100 Datensätze beschränkt. Es empfiehlt sich, die Funktionen skip() und limit() zu verwenden.

Info

Verwendet man nur einen Befehl, ist das Semikolon am Ende optional.

Man kann auch mehrere Befehle eingeben. Diese müssen dabei aber in eine Funktion eingeschlossen sein und das Ergebnis muss mit der return-Anweisung zurückgegeben werden.

 

Codeblock
themeEmacs
languagejs
function () {
    var stats = db.zipcode.stats();
    var index = db.zipcode.getIndexes();
    return {
        stats: stats,
        indexInformation: index
    };
}

 

 

Hinweis

Der Serverseitiges Script Modus funktioniert nur, wenn die Mongo-Serverinstanz serverseitiges JavaScript aktiviert hat. Dies ist standardmäßig aktiviert.

Hinweis

Ab Version 2.6 von MongoDB funktioniert der Serverseitiges Script Modus nicht, wenn Authentifizierung für die Datenbank aktiviert ist. Dann wir nämlich von MongoDB das Ausführen serverseitigem JavaScript blockiert.