Saya telah menggunakan PostGIS selama beberapa tahun dan baru-baru ini mulai menyelidiki bagaimana saya bisa menggunakan MongoDB untuk menangani kasus penggunaan tertentu. Saya berurusan dengan data titik yang memiliki bidang jarang - seperti data OSM dengan berbagai jumlah tag per catatan, dan karena MongoDB tidak memiliki skema, itu cocok untuk hal ini. Saya memuat sampel data ini ke dalam instance dari setiap DB dan inilah yang saya temukan.
Tampak bagi saya bahwa untuk penyimpanan sederhana dan pengambilan data titik, Mongo bekerja dengan baik. Kueri geospasial kotak pembatas tampaknya bekerja dengan baik, dan saya menemukan bahwa kinerja keseluruhan sangat baik. Ini juga sangat mudah untuk setup dan memulai, meskipun saya telah menemukan bahwa alat mongoimport tidak memungkinkan saya untuk mendefinisikan bidang gabungan kata majemuk 2D dalam file TSV atau CSV. Karena cukup mudah untuk menulis skrip yang menghasilkan JSON, ini tidak terlalu menjadi masalah. Kelemahan utamanya saat ini adalah hampir tidak ada hal lain di ranah geospasial yang dapat secara asli membaca data darinya. Tampaknya ada plugin sumber data Mapnik eksperimental di https://github.com/springmeyer/mapnik-mongo , tapi hanya itu yang bisa saya temukan.
PostGIS di sisi lain membutuhkan waktu sedikit lebih lama untuk mengatur (setidaknya untuk saya), tetapi seperti yang disebutkan di atas, ia menyediakan lebih banyak fitur jauh dari kotak. Selain menyediakan kemampuan analitik spasial yang jauh lebih canggih, ia juga didukung secara alami oleh banyak aplikasi dan perpustakaan lainnya; Mapserver, Mapnik, QGis, GDAL, dll. Bagi saya, PostGIS lebih merupakan sistem GIS yang sebenarnya, daripada sistem penyimpanan dan pengambilan sederhana.
Sejauh kinerja berjalan, saya menemukan bahwa saya dapat mengambil data dengan sangat cepat dari kedua sistem. Namun, sepertinya PostGIS lebih diuntungkan dari keberadaan indeks. MongoDB sedikit lebih cepat mengembalikan seluruh set data kepada saya (2 juta catatan) sekaligus, dan sedikit lebih lambat mengembalikan kueri yang menggunakan indeks - pertama kali. Saya tidak begitu yakin tentang mekanisme yang digunakan untuk caching, tapi saya bisa melihat bahwa jika saya mengulangi pertanyaan dalam MongoDB, hasilnya kembali jauh lebih cepat pada kali ke-2. Saya melihat sesuatu yang serupa di PostGIS, tetapi tidak pada tingkat yang sama. Saya juga mencatat bahwa penggunaan memori pada komputer saya tampaknya jauh lebih tinggi dengan MongoDB berjalan daripada PostGIS.
Jadi, kesimpulan saya adalah bahwa saya tidak akan menyingkirkan PostGIS sebagai sistem penyimpanan dan analisis geospasial standar saya, tetapi untuk jenis proyek tertentu (yaitu peta web yang menampilkan petak gambar dan / atau data titik) saya dapat mempertimbangkan menggunakan MongoDB sebagai penyimpan data saya.
Roger