Die Daten werden nicht mehr als Tabellen und Datensätze behandelt, sondern als Dokumentensammlungen bezeichnet . Auf diese Weise verschwinden die Beziehungen zwischen Tabellen und es ergibt sich eine neue Möglichkeit, Dokumente mit unterschiedlichen Strukturen zu erstellen, ohne sie zuvor definieren zu müssen.
Testumgebung – Installation
Um die verschiedenen Abfragen ausführen zu können, die wir in diesem Lernprogramm sehen, müssen wir unsere Testumgebung einrichten. Dies können wir anhand der Beispiele lernen und so alle Konzepte verstärken, die möglicherweise neu sind.
Die Installation dieses Tutorials erfolgt unter Windows 7, aber abhängig von unserem Betriebssystem können wir auf mongodb.org nach dem Download-Bereich suchen. Dort erhalten wir die verschiedenen Versionen für Linux, Mac oder Solaris .
Sobald wir die entsprechende Version heruntergeladen und installiert haben, müssen wir den mongod- Daemon starten, im Falle von Windows ist mongod.exe , aber um richtig zu funktionieren, müssen wir ein Verzeichnis oder einen Datenordner erstellen, vorzugsweise in einem Pfad, der keine Administratorrechte benötigt und Wenn Sie mongod.exe starten, sagen wir Ihnen, dass Sie es nehmen sollen. Der Startbefehl lautet wie folgt:
$ pathMongodb / mongod.ex - - dbpath "Laufwerk: db data"
Wobei pathMododb der Ordner ist, in dem wir die Installation durchgeführt haben, und Unit der Buchstabe der Festplatte, auf der sich der Pfad für den Zugriff auf db data befindet . Wenn alles erfolgreich gestartet wurde, sehen wir Folgendes:
Im vorherigen Bildschirm müssen wir feststellen, dass auf Verbindungen gewartet wird. Dies ist das Signal, dass der Dienst ordnungsgemäß ausgeführt wird. Sobald der Server gestartet ist, müssen wir eine neue Konsole öffnen und zum Installationspfad von MongoDB zurückkehren . Hier finden wir den Client mit dem Namen mongo.exe , und wenn er ausgeführt wird, versucht er sofort, eine Verbindung zu unserem Dienst herzustellen wir können es auf dem folgenden Bild sehen.
Wenn wir uns dazu entschließen, die Online-Version der offiziellen Website zu durchlaufen, sollten wir nur auf die Route try.mongodb.org zugreifen. Dort finden wir eine MongoDB- Konsole in JavaScript . Dies erleichtert unsere Aufgaben in Fällen, in denen wir dies nicht tun können Installation oder nur um unsere Neugier zu befriedigen.
Testumgebung – Anfangsdaten
Da unser Handler ausgeführt wird und wir Befehle eingeben können, benötigen wir eine Reihe von Testdaten, mit denen wir die Abfragen auswerten können. Zu Beginn belassen wir die folgenden Datensätze, die kopiert und in Ihre Konsole eingefügt werden können, damit sie etwas in der Datenbank haben und so erhalten Sie Ergebnisse mit den Beispielen, die später kommen:
db.guiamongo.insert ({"name": "Maria", "age": "25", "gender": "Feminine", "country": "Colombia"}); db.guiamongo.insert ({"name ":" Pedro "," Alter ":" 32 "," Geschlecht ":" Männlich "," Land ":" Ecuador "}; db.guiamongo.insert ({" Name ":" Ramon "," Alter " : "18", "Genre": "Männlich", "Land": "Honduras"}; db.guiamongo.insert ({"Name": "John", "Alter": "22", "Geschlecht": "Männlich", "Land": "Argentinien"}); db.guiamongo.insert ({"Name": "Rosa", "Alter": "45", "Geschlecht": "Weiblich", "Land": " Chile "," Idiome ": [" Esp "," Ing "," Fra "]});
Sobald wir unsere Daten eingegeben haben, ist die Testumgebung vollständig bereit.
Konsultieren Sie mit find ()
Das Hauptwerkzeug zum Ausführen von Abfragen in MongoDB ist find () . Mit diesem einfachen Befehl können wir die benötigten Dokumente effektiv lokalisieren. Denken Sie jedoch daran, dass die Dokumente den Datensätzen in anderen Datenbankmanagern ähneln.
Die einfachste Möglichkeit, find () zu verwenden , besteht darin, ein Array mit den Eigenschaften des Dokuments zu übergeben, das Sie abrufen möchten. Sobald alles zurückgegeben wird, was die Bedingung erfüllt, suchen Sie im folgenden Beispiel die Dokumente, in denen sie sich befinden ” Geschlecht ” ist ” weiblich “, hierfür können wir den folgenden Befehl verwenden:
db.guiamongo.find ({"Genre": "weiblich"});
Das Ergebnis dieser Abfrage sollte ungefähr so aussehen:
Wir sehen, wie effektiv MongoDB die beiden Datensätze zurückgibt, die wir in unsere Testumgebung einfügen.
Da wir sehen können, dass die Dokumente vollständig sind und wir möglicherweise nur ein einziges Attribut benötigen, müssen wir in diesen Fällen ein zweites Array übergeben, um find () anzugeben, was wir daraus holen müssen. Standardmäßig wird der Primärschlüssel auch _id enthalten Geben Sie nicht an, sondern lesen Sie den Befehl, mit dem nur die Namen der vorherigen Abfrage abgefragt werden:
db.guiamongo.find ({"Genre": "weiblich"}, {"Name": 1});
Sehen wir uns im folgenden Bild an, wie wir das Ergebnis visualisieren können, wenn wir nur diese Eigenschaft unseres Dokuments erhalten haben:
Fundgrenzen ()
Da es keine Beziehungen zwischen Dokumenten gibt, können wir in anderen Datenbankmanagern keine so genannten Joins ausführen, sodass wir keine Katalogtabelle haben und den Code nur dem primären Dokument hinzufügen können.
Eine weitere Einschränkung besteht darin, dass wir mit Elementen desselben Dokuments keine Bedingungen suchen und erstellen können, z. B. das “Alter” mit einem anderen numerischen Feld desselben Dokuments vergleichen. Wenn wir dies berücksichtigen, werden wir in Kürze geeignete Wege finden, um unsere Dokumente in MongoDB zu behandeln .
Vergleichsoperatoren
Die Tatsache, dass wir mit Arrays arbeiten und sie mit Eigenschaften abgleichen, bedeutet nicht, dass wir keine Vergleiche durchführen können, die größer, kleiner, größer oder gleich, kleiner oder gleich sind. Wir wissen, dass diese Vergleiche in vielen Systemen, die mit Abfragen arbeiten, von entscheidender Bedeutung sind. Aus diesem Grund gibt es in MongoDB spezielle Operatoren für diese Fälle.
Nachfolgend sehen wir anhand eines kleinen Beispiels, wie wir diese Tools in find () verwenden können .
Zunächst werden alle Dokumente konsultiert, deren Alter weniger als 25 Jahre beträgt . Dazu setzen wir das Alter und übergeben dann ein Array mit der Bedingung, um zu bewerten, wie wir im folgenden Befehl feststellen können:
db.guiamongo.find ({"age": {"$ lt": "25"}});
Dies führt zu folgenden Ergebnissen:
Wie wir sehen, ist die Abfrage sehr einfach und wir können sie an das anpassen, was wir zuvor gesehen haben, um auszuwählen, welche Felder oder Eigenschaften des Dokuments angezeigt werden sollen. Dies ist eine Übung, um sie auszuführen.
Sehr interessant ist, dass wir mehrere Bedingungen in einer Zeile verknüpfen können, wodurch wir eine viel spezifischere Abfrage erhalten und so die Ergebnisse erhalten, die wir wirklich brauchen. Nehmen wir zum Beispiel an, wir brauchen alle über 20, aber unter 30 dafür mit folgendem Befehl würde ausreichen:
db.guiamongo.find ({"age": {"$ gt": "20", "$ lt": "30"}});
Dies sollte zu einem Ergebnis führen, das dem folgenden Bild ähnelt:
Der Operator $ nicht
Manchmal müssen wir konsultieren, aber gleichzeitig möchten wir, dass ein Wert oder eine Reihe spezifischer Werte nicht angezeigt wird. Dazu haben wir den Operator der Negation $ not . Dies kann auf jede Bedingung angewendet werden, und damit werden die Dokumente, die dem Kriterium entsprechen, nicht angezeigt.
Zum Beispiel werden wir das vorherige Beispiel umschreiben, in dem wir, anstatt das Segment größer als 20 und kleiner als 30 zu lokalisieren, sie ausschließen, indem wir einfach unseren Befehl wie folgt ändern:
db.guiamongo.find ({"age": "$ not": {"$ gt": "20", "$ lt": "30"}});
Daraus ergibt sich folgendes Ergebnis:
Wie wir sehen, haben wir das Gegenteil von dem erhalten, was wir in den Vergleichsbedingungen setzen.
Der Operator $ in
Der Operator $ in funktioniert wie die Klausel OR der traditionellen SQL- Sprache. Was uns ermöglicht, sind einfach die Dokumente, die mit der einen oder anderen Bedingung übereinstimmen, die wir an ihn übergeben.
Zum Beispiel werden wir nach Personen suchen, die aus Chile oder Argentinien stammen . In unseren Testdaten haben wir zwei Datensätze, die dieses Kriterium erfüllen.
db.guiamongo.find ({"pais": {"$ in": ["Chile", "Argentinien"]}});
Wenn wir das Ergebnis über die Konsole visualisieren, erhalten wir das, was wir erwartet haben.
Nachdem wir dieses Tutorial fertiggestellt haben, haben wir bereits eine grundlegende Anleitung, um Abfragen zu unseren in MongoDB erstellten Datenbanken durchzuführen. Dies ist sehr wichtig zu wissen, da die nicht relationalen Datenbanken oder noSQL, wie sie genannt werden, auch der Trend und die Zukunft der Speicherung für Anwendungen.