我正在尝试找到有关此主题的一些信息,但我发现的大多数文章都是3年以上。我对这方面也很新,不知道该问谁。
对于我的特定用例,我根本不是数据库专家,但我以前曾使用过几次MongoDB。我只使用PostgreSQL一次用于一个小项目(不涉及GIS内容)。为了它的价值,我现在有少量数据存储到dynamoDB中。有一个地理库,但它只有Java,我不太了解Java。
我的用例非常简单 - 除了用户个人资料数据外,我希望能够查询用户添加的标记。经过身份验证的用户当前latLng
等X英里内的标记。标记除了与之相关的latLng
之外还有其他数据,例如添加它的用户,标题,描述等。
我的目标是能够使用Web API将结果返回到客户端,其中标记位于当前位置X英里内,距离最近到最远。为此,在Mongo和PostgreSQL之间,最好先做什么?
PostgreSQL可以通过PostGis为您提供完整的(地理)空间功能,尽管您的应用程序可能不需要那么多。
如果您只需要在(lat,lng)点的某个半径内快速找到用户,则可以使用earthdistance module和GIST indexes。
查看How can I speed-up my query on geo-location processes以获取详细说明。
检查Searching in a Radius using Postgres。
在MongoDB中,您将使用geoNear功能和2dsphere Indexes
PostgreSQL中的查询非常快速且非常灵活,并且可以很好地扩展。与MongoDB相比,您需要更多的工作来设置它。
无论如何,两者都有基本功能,你应该考虑所有其他因素:
检查Postgres Outperforms MongoDB and Ushers in New Developer Reality和System Properties Comparison MongoDB vs. PostgreSQL等等。