在mongo db中存储给定lat,long和地址的最佳方法是找到给定lat的地址,long很快

时间:2018-05-21 13:09:48

标签: mongodb mongodb-query geospatial reverse-geocoding

过去两天我正在摸不着头脑。 我有一个大约20M lat,long和address的实时数据集。现在,我想将它们存储在MongoDB中,以便查询找到给定lat的地址,long很快。 我在MongoDB上找到的一些解决方案是:

  1. 索引位于2dsphere。
  2. 但是有多好找到lat的完全匹配,长?

    1. 如果不使用2dsphere,那么存储lat的最佳方法是什么,以便将存储和索引大小保持在最低水平并获得性能。

1 个答案:

答案 0 :(得分:1)

MongoDB在其2dsphere索引内部使用GeoHash和B树,使用$near$geoNear提供非常快速的区域查找;您可以使用0的$minDistance$maxDistance进行完全匹配,但如果您担心与浮点精度相关的问题,则可能需要使用$maxDistance的1。在许多情况下,如果结果在某些地方密集分布,limit(1)结果可能很重要,尽管街道地址应该不是问题。在我的开发机器上,我可以在300-400毫秒内查询一个包含4000万个多边形的集合,总计近50GB的数据。