如何在GIS中选择MongoDB和PostgreSQL?

a p*_*son 13 database gis postgresql postgis mongodb

我正在尝试找到有关此主题的一些信息,但我发现的大多数文章都是3年以上.我对这方面也很新,不知道该问谁.

对于我的特定用例,我根本不是数据库专家,但我以前曾使用过几次MongoDB.我只使用PostgreSQL一次用于一个小项目(不涉及GIS内容).为了它的价值,我现在有少量数据存储到dynamoDB中.有一个地理库,但它只有Java,我不太了解Java.

我的用例相当简单 - 除了用户个人资料数据外,我希望能够查询用户添加的标记.标记用户当前latLng等X英里内的标记.标记除了latLng与其关联之外还有其他数据,例如添加它的用户,标题,描述等.

我的目标是能够使用Web API将结果返回到客户端,其中标记位于当前位置X英里内,距离最近到最远.为此,在Mongo和PostgreSQL之间,最好先做什么?

joa*_*olo 17

PostgreSQL的可以通过给你全(地理)空间功能PostGIS的,虽然你可能并不需要这么多的应用程序.

如果您只需要快速查找(lat,lng)点的某个半径范围内的用户,则可以将earthdistance模块GIST索引一起使用.

检查如何加快我对地理位置流程的查询,以获取详细说明.

还可以使用Postgres检查半径搜索.


MongoDB中,您将使用geoNear功能和2dsphere索引


PostgreSQL中的查询非常快速且非常灵活,并且它们可以很好地扩展.与MongoDB相比,您需要更多的工作来设置它.

无论如何,两者都有基本功能,你应该考虑所有其他因素:

  • 您的数据是否结构合理,并且在此结构中几乎没有变化?(更多关于SQL方面)
  • 您是否需要ACID(原子性,一致性,隔离性,耐久性)保证?(更多关于SQL方面)
  • 你需要巨大的水平缩放吗?(更多关于MongoDB方面)
  • 您是否需要一次查询多个表(并加入)?(SQL端)
  • 使用JavaScript和JSON比使用其他语言更舒服吗?(MonboDB +)
  • (等等)

检查Postgres优于MongoDB和Ushers的新开发人员现实系统属性比较MongoDB与PostgreSQL等等.

  • 如果我可以再问一个问题.目前,我认为我不需要关系数据库,因此我倾向于使用MongoDB,因为它易于设置和使用它.我期待很多初始写入(创建新标记)和大量读取,但除了删除之外,不要期望对现有标记进行许多更新.我认为我的数据模型也很简单,如果需要(并且如上所述,我对数据库知之甚少,我试着建立一个PoC)我可以切换到postgres.你认为这是一种有效的方法吗?谢谢 (2认同)