【问题标题】:The best way to store given lat, long and address in mongo db such that finding address for a given lat, long is fast在 mongo db 中存储给定 lat、long 和地址的最佳方法是快速查找给定 lat、long 的地址
【发布时间】:2018-05-23 00:29:43
【问题描述】:

过去两天我一直在摸索,以使其正确。 我有一个大约 20M 纬度、经度和地址的实时数据集。现在,我想将它们存储在 MongoDB 中,以便查找给定 lat、long 的地址的查询很快。 我在 MongoDB 上找到的一些解决方案是:

  1. 2dsphere 的索引 loc。

但是对于纬度、经度的完全匹配的查找查询有多好?

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

【问题讨论】:

  • 这有点基于意见,除了“事实”,GeoJSON 支持实际上在 MongoDB 操作中被更广泛地采用和标准。旧版对不适用于所有内容。除此之外,虽然你有点宽泛。

标签: mongodb mongodb-query geospatial reverse-geocoding


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
相关资源
最近更新 更多