Database Reference
In-Depth Information
Mongo besitzt sogar eine Kurzform für einfache Entscheidungsfunktionen.
db.towns.find( "this.population > 6000 && this.population < 600000" )
Sie können eigenen Code mit anderen Kriterien über die $where -Klausel aus-
führen. Im folgenden Beispiel filtert die Query auch Städte heraus, die für
Murmeltiere berühmt sind.
db.towns.find( {
$where : "this.population > 6000 && this.population < 600000" ,
famous _ for : /groundhog/
})
Doch seien Sie gewarnt: Mongo führt diese Funktion gnadenlos über jedes
Dokument aus und es gibt keine Garantie, dass die angegebenen Felder
existieren. Wenn Sie zum Beispiel davon ausgehen, dass ein population -Feld
existiert und dieses Feld auch nur in einem einzigen Dokument fehlt, dann
schlägt die Query fehl, weil JavaScript nicht sauber ausgeführt werden kann.
Seien Sie vorsichtig, wenn Sie eigene JavaScript-Funktionen entwickeln -
und Sie sollten mit JavaScript vertraut sein, bevor Sie sich an eigenem Code
versuchen.
Was wir am ersten Tag gelernt haben
Heute haben wir einen Blick auf unsere erste Dokumenten-Datenbank ge-
worfen: MongoDB. Wir haben gesehen, wie man verschachtelte, strukturierte
Daten in JSON-Objekten speichern und diese Daten in beliebiger Tiefe ab-
fragen kann. Sie haben gelernt, dass man sich ein Dokument als schemafreie
Zeile in einem relationalen Modell vorstellen kann, bei der eine erzeugte _ id
den Schlüssel bildet. Eine Gruppe von Dokumenten wird bei Mongo als Col-
lection bezeichnet, ähnlich einer Tabelle in PostgreSQL.
Im Gegensatz zu den bisher vorgestellten Datenbanktypen speichert Mongo
mit seiner Sammlung von Reihen einfacher Datentypen komplexe, denorma-
lisierte Dokumente, die als Collections beliebiger JSON-Strukturen gespei-
chert und abgerufen werden. Mongo rundet die flexible Speicherstrategie mit
einem mächtigen Query-Mechanismus ab, der nicht durch ein vordefiniertes
Schema beschränkt wird.
Die denormalisierte Natur macht einen Dokumenten-Datenspeicher zu einer
ausgezeichneten Wahl, um Daten mit unbekannten Eigenschaften zu spei-
chern, während andere Arten (wie relational oder spaltenorientiert) die Dinge
im Vorfeld wissen wollen und Schema-Migrationen brauchen, um Felder hin-
zufügen oder editieren zu können.
Search WWH ::




Custom Search