Ich benutze PostGIS seit einigen Jahren und habe erst kürzlich damit begonnen zu untersuchen, wie ich MongoDB für bestimmte Anwendungsfälle verwenden kann. Ich hatte es mit Punktdaten zu tun, die spärliche Felder hatten - wie OSM-Daten mit einer unterschiedlichen Anzahl von Tags pro Datensatz, und da MongoDB kein Schema hat, bietet es sich gut dafür an. Ich habe ein Beispiel dieser Daten in eine Instanz jeder Datenbank geladen, und das habe ich gefunden.
Mir scheint, dass Mongo für das einfache Speichern und Abrufen von Punktdaten gut funktioniert. Die geografischen Abfragen für die Bounding Box scheinen gut zu funktionieren, und ich finde, dass die Gesamtleistung sehr gut ist. Es ist auch sehr einfach einzurichten und loszulegen, obwohl ich festgestellt habe, dass mit dem Mongoimport-Tool kein zusammengesetztes 2D-Koordinatenfeld in einer TSV- oder CSV-Datei definiert werden kann. Da es ziemlich einfach ist, ein Skript zu schreiben, das JSON generiert, war dies kein großes Problem. Der größte Nachteil besteht derzeit darin, dass fast nichts anderes im Bereich der Geodaten Daten von sich aus lesen kann. Es scheint ein experimentelles Mapnik-Datenquellen-Plugin unter https://github.com/springmeyer/mapnik-mongo zu geben , aber das ist alles, was ich finden konnte.
Das Einrichten von PostGIS hingegen dauert (zumindest für mich) etwas länger, bietet jedoch, wie oben erwähnt, sofort mehr Funktionen. Es bietet nicht nur eine viel ausgefeiltere räumliche Analyse, sondern wird auch von einer Vielzahl anderer Anwendungen und Bibliotheken unterstützt. Mapserver, Mapnik, QGis, GDAL usw. Für mich ist PostGIS viel mehr ein echtes GIS-System als ein einfaches Speicher- und Abrufsystem.
In Bezug auf die Leistung stellte ich fest, dass ich Daten von beiden Systemen sehr schnell abrufen konnte. Es schien jedoch, dass PostGIS mehr von der Präsenz von Indizes profitierte. MongoDB hat mir den gesamten Datensatz (2 Millionen Datensätze) auf einmal etwas schneller und eine Abfrage, die einen Index verwendet hat, beim ersten Mal etwas langsamer zurückgegeben. Ich bin mir nicht ganz sicher, welchen Mechanismus es für das Caching verwendet, aber wenn ich eine Abfrage in MongoDB wiederhole, werden die Ergebnisse beim zweiten Mal viel schneller wiedergegeben. Ich sehe etwas Ähnliches in PostGIS, aber nicht in gleichem Maße. Ich habe auch bemerkt, dass die Speichernutzung auf meinem Computer bei MongoDB deutlich höher zu sein scheint als bei PostGIS.
Mein Fazit ist also, dass ich PostGIS nicht als mein standardmäßiges Geospeicher- und Analysesystem loswerden werde, sondern für bestimmte Projekttypen (nämlich Webkarten, die Bildkacheln und / oder Punktdaten anzeigen) die Verwendung von MongoDB in Betracht ziehen kann als mein Datenspeicher.
Roger