Uso PostGIS da alcuni anni e solo di recente ho iniziato a studiare come avrei potuto usare MongoDB per gestire alcuni casi d'uso. Avevo a che fare con dati puntuali con campi sparsi, come i dati OSM con un numero variabile di tag per record, e poiché MongoDB non ha uno schema, si presta bene a questo. Ho caricato un campione di questi dati in un'istanza di ciascun DB e questo è quello che ho trovato.
Mi sembra che per la semplice memorizzazione e il recupero dei dati dei punti Mongo funzioni perfettamente. Le query geospaziali del bounding box sembrano funzionare bene e trovo che le prestazioni complessive siano molto buone. È anche molto facile da configurare e iniziare, anche se ho scoperto che lo strumento mongoimport non mi consente di definire un campo coord 2D composto in un file TSV o CSV. Dal momento che è abbastanza facile scrivere uno script che genera JSON, questo non è stato un grosso problema. Il suo principale svantaggio al momento è che quasi nient'altro nel regno geospaziale può leggere nativamente i dati da esso. Sembra che ci sia un plug-in di origine dati Mapnik sperimentale su https://github.com/springmeyer/mapnik-mongo , ma è tutto ciò che sono riuscito a trovare.
D'altra parte PostGIS richiede un po 'più di tempo per essere configurato (almeno per me), ma come è stato menzionato sopra, offre molte più funzioni immediatamente. Oltre a fornire capacità analitiche spaziali molto più sofisticate, è anche nativamente supportato da moltissime altre applicazioni e librerie; Mapserver, Mapnik, QGis, GDAL, ecc. Per me PostGIS è molto più un vero sistema GIS, piuttosto che un semplice sistema di archiviazione e recupero.
Per quanto riguarda le prestazioni, ho scoperto che avrei potuto recuperare i dati molto rapidamente da entrambi i sistemi. Tuttavia, sembra che PostGIS abbia beneficiato maggiormente della presenza di indici. MongoDB è stato leggermente più veloce nel restituirmi l'intero set di dati (2 milioni di record) in una volta, e leggermente più lento nel restituire una query che utilizzava un indice - la prima volta. Non sono esattamente sicuro del meccanismo che utilizza per la memorizzazione nella cache, ma posso vedere che se ripeto una query in MongoDB, i risultati tornano molto più rapidamente la seconda volta. Vedo qualcosa di simile in PostGIS, ma non nella stessa misura. Ho anche notato che l'utilizzo della memoria sulla mia macchina sembra essere molto più alto con MongoDB in esecuzione rispetto a PostGIS.
Quindi, la mia conclusione è che non mi sbarazzerò di PostGIS come sistema di archiviazione e analisi geospaziale predefinito, ma per alcuni tipi di progetti (vale a dire mappe web che visualizzano riquadri di immagini e / o dati puntuali), potrei prendere in considerazione l'uso di MongoDB come il mio archivio dati.
Roger