© saicle/Shutterstock.com
Einführung in die Nutzung von Geodaten in der NoSQL-Datenbank MongoDB

MongoDB trifft Geo Data


Die NoSQL-Datenbank MongoDB gehört sicherlich zu den heißesten Themen für Entwickler. In diesem Artikel erhalten Sie einen kurzen Überblick über den Einsatz von MongoDB unter PHP. Insbesondere zeigt der Praxisteil einige Fingerübungen für die Nutzung von Geodaten mithilfe von MongoDB.

Heute setzt man für PHP-Anwendungen im Wesentlichen auf den LAMP Stack, damit ist dann eigentlich MySQL fast immer mit von der Partie. Im Bereich der Entwicklung hat sich die Nutzung des objektorientierten Aufbaus von PHP-Anwendungen bereits durchgesetzt. Kaum eine Anwendung nutzt aber daneben kein JavaScript und meistens spielt auch Ajax eine große Rolle. Wobei das „x“ bei „Ajax“ kaum noch XML, sondern fast immer einen Austausch von Daten im JSON-Format bedeutet. Tatsächlich sprechen hier einige gar von Ajaj.

MongoDB – NoSQL im Vergleich

Genau hier setzt letztlich die NoSQL-Datenbank MongoDB an. Eine Grundeigenschaft ist, dass MongoDB alle Dokumente im JSON-Format speichert. Dabei werden die Daten ohne die Nutzung von Schemainformationen abgelegt. Müssen bei der Nutzung von MySQL zunächst Datenbanken und Tabellen angelegt und konfiguriert und als diesem Schema entsprechende Daten erzeugt werden, so ist der Entwickler bei ­NoSQL-Datenbanken davon befreit. Beliebige PHP/JSON-Objekte (inklusive eventuell vorhandener Unterobjekte oder Arrays) können einfach in einer so genannten Collection abgelegt werden. Dabei ist grundsätzlich die Ablage völlig unterschiedlicher Objekte in einer solchen Sammlung möglich, wenn auch nicht wirklich sinnvoll. Dieser dokumentenorientierte Ansatz ist insbesondere im Zusammenspiel mit einer objektorientierten Skriptsprache wie PHP recht nützlich und vermeidet den Bruch zwischen Kodierung und Datenvorhaltung. Für die Nutzung von relationalen Systemen wird ja heute oft ein entsprechender Mapper (ORM) genutzt, der jedoch zu größerem Aufwand insbesondere bei der initialen Implementierung führt. Bei vielen Entwicklungen arbeitet man auch direkt mit SQL und überführt nur teilweise Datenbanken in PHP-Objekte und Teile in JSON-Daten. Insbesondere sobald komplexe Objektbeziehungen dargestellt werden müssen, werden die Erwartungen an einen objektrelationalen Mapper oft enttäuscht. Im Gegensatz hierzu ist die Nutzung von MongoDB für die Speicherung von Objekten geradezu trivial; die MongoDB-Schnittstelle ermöglicht hier die direkte Speicherung von PHP-Objekten.

Als erfahrener Entwickler kennen Sie vielleicht die Probleme einer SQL-Datenbank, wenn Schemaänder...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang