Uso o PostGIS há alguns anos e só recentemente comecei a investigar como eu poderia usar o MongoDB para lidar com certos casos de uso. Eu estava lidando com dados pontuais que tinham campos esparsos - como dados OSM com um número variável de tags por registro e, como o MongoDB não tem esquema, ele se presta bem a isso. Carreguei uma amostra desses dados em uma instância de cada banco de dados e foi isso que encontrei.
Parece-me que, para armazenamento e recuperação simples de dados pontuais, o Mongo funciona perfeitamente. As consultas geoespaciais da caixa delimitadora parecem funcionar bem, e acho que o desempenho geral é muito bom. Também é muito fácil de configurar e seguir em frente, embora eu tenha descoberto que a ferramenta mongoimport não me permite definir um campo de coordenação 2D composto em um arquivo TSV ou CSV. Como é muito fácil escrever um script que gera JSON, isso não tem sido um grande problema. Sua principal desvantagem no momento é que quase nada mais no domínio geoespacial pode ler dados nativamente a partir dele. Parece haver um plug-in experimental de fonte de dados do Mapnik em https://github.com/springmeyer/mapnik-mongo , mas foi tudo o que pude encontrar.
O PostGIS, por outro lado, demora um pouco mais para ser configurado (pelo menos para mim), mas, como mencionado acima, ele oferece muito mais recursos prontos para uso. Além de fornecer recursos analíticos espaciais muito mais sofisticados, também é suportado nativamente por vários outros aplicativos e bibliotecas; Mapserver, Mapnik, QGis, GDAL, etc, etc. Para mim, o PostGIS é muito mais um verdadeiro sistema GIS, em vez de um simples sistema de armazenamento e recuperação.
Quanto ao desempenho, descobri que era possível recuperar dados muito rapidamente de ambos os sistemas. No entanto, parecia que o PostGIS se beneficiava mais da presença de índices. O MongoDB foi um pouco mais rápido ao retornar todo o conjunto de dados para mim (2 milhões de registros) de uma só vez, e um pouco mais lento ao retornar uma consulta que usava um índice - pela primeira vez. Não tenho exatamente certeza do mecanismo que ele usa para armazenar em cache, mas posso ver que, se eu repetir uma consulta no MongoDB, os resultados retornam muito mais rapidamente na segunda vez. Vejo algo semelhante no PostGIS, mas não no mesmo grau. Também observei que o uso de memória na minha máquina parece ser muito maior com o MongoDB em execução do que com o PostGIS.
Portanto, minha conclusão é que não vou me livrar do PostGIS como meu sistema de armazenamento e análise geoespacial padrão, mas para certos tipos de projetos (nomeadamente mapas da web que exibem blocos de imagens e / ou dados de pontos), posso considerar usar o MongoDB como meu armazenamento de dados.
Roger