He estado usando PostGIS durante algunos años y solo recientemente comencé a investigar cómo podría usar MongoDB para tratar ciertos casos de uso. Estaba tratando con datos de puntos que tenían campos dispersos, como los datos de OSM con un número variable de etiquetas por registro, y dado que MongoDB no tiene esquema, se presta bien a esto. Cargué una muestra de estos datos en una instancia de cada DB y esto es lo que encontré.
Me parece que para un simple almacenamiento y recuperación de datos de puntos, Mongo funciona bien. Las consultas geoespaciales del cuadro delimitador parecen funcionar bien, y creo que el rendimiento general es muy bueno. También es muy fácil de configurar y poner en marcha, aunque he descubierto que la herramienta mongoimport no me permite definir un campo coord 2D compuesto en un archivo TSV o CSV. Como es bastante fácil escribir un script que genere JSON, esto no ha sido un gran problema. Su principal inconveniente en este momento es que casi nada más en el ámbito geoespacial puede leer datos de forma nativa. Parece que hay un complemento experimental de fuente de datos de Mapnik en https://github.com/springmeyer/mapnik-mongo , pero eso es todo lo que pude encontrar.
PostGIS, por otro lado, tarda un poco más en configurarse (al menos para mí), pero como se mencionó anteriormente, proporciona muchas más funciones desde el primer momento. Además de proporcionar una capacidad analítica espacial mucho más sofisticada, también es compatible de forma nativa con muchas otras aplicaciones y bibliotecas; Mapserver, Mapnik, QGis, GDAL, etc., etc. Para mí, PostGIS es mucho más un verdadero sistema GIS, en lugar de un simple sistema de almacenamiento y recuperación.
En cuanto al rendimiento, descubrí que podía recuperar datos muy rápidamente de ambos sistemas. Sin embargo, parecía que PostGIS se benefició más de la presencia de índices. MongoDB fue un poco más rápido al devolverme todo el conjunto de datos (2 millones de registros) a la vez, y un poco más lento al devolver una consulta que utilizaba un índice, la primera vez. No estoy exactamente seguro del mecanismo que utiliza para el almacenamiento en caché, pero puedo ver que si repito una consulta en MongoDB, los resultados vuelven mucho más rápido la segunda vez. Veo algo similar en PostGIS, pero no en el mismo grado. También noté que el uso de memoria en mi máquina parece ser mucho mayor con MongoDB ejecutándose que con PostGIS.
Entonces, mi conclusión es que no voy a deshacerme de PostGIS como mi sistema de almacenamiento y análisis geoespacial predeterminado, sino que para ciertos tipos de proyectos (es decir, mapas web que muestran mosaicos de imágenes y / o datos de puntos) puedo considerar usar MongoDB como mi almacén de datos
Roger