He estado usando PostGIS durante unos años y sólo recientemente he empezado 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 como MongoDB no tiene ningún 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 el simple almacenamiento y recuperación de datos puntuales Mongo funciona muy bien. Las consultas geoespaciales de bounding box parecen funcionar bien, y encuentro que el rendimiento general es muy bueno. También es muy fácil de configurar y poner en marcha, aunque he encontrado que la herramienta mongoimport no me permite definir un campo de coordenadas 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 mayor inconveniente por el momento es que casi nada en el ámbito geoespacial puede leer datos de forma nativa. Parece que hay un plugin experimental de fuentes de datos de Mapnik en https://github.com/springmeyer/mapnik-mongo pero eso es todo lo que pude encontrar.
Por otro lado, PostGIS tarda un poco más en configurarse (al menos para mí), pero, como se ha mencionado anteriormente, ofrece muchas más funciones desde el principio. Además de proporcionar una capacidad de análisis espacial mucho más sofisticada, también es compatible de forma nativa con un montón de otras aplicaciones y bibliotecas; Mapserver, Mapnik, QGis, GDAL, etc, etc. Para mí, PostGIS es mucho más un verdadero sistema SIG, que 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 beneficiaba más de la presencia de índices. MongoDB fue ligeramente más rápido a la hora de devolverme todo el conjunto de datos (2 millones de registros) de una vez, y ligeramente más lento a la hora de 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 he notado que el uso de la memoria en mi máquina parece ser mucho mayor con MongoDB corriendo que con PostGIS.
Por lo tanto, mi conclusión es que no voy a deshacerme de PostGIS como mi sistema de almacenamiento y análisis geoespacial por defecto, pero para ciertos tipos de proyectos (a saber, mapas web que muestran mosaicos de imágenes y/o datos de puntos) podría considerar el uso de MongoDB como mi almacén de datos.
Roger