首页 文章

mongodb 中地理空间索引的内部机制

提问于
浏览
6

任何人都知道地理空间索引如何工作,我的意思是计算最近点的算法?

在 SQL 中我们可以做这样的事情:
SELECT id, (x-a)*(x-a)+(y-b)*(y-b) as distance FROM table1 ORDER by distance ASC
当然,与 mongodb 的地理空间索引相比,这还不够有效,但 mongodb 如何计算和排序?

提前谢谢了。

2 回答

  • 4

    mongodb 地理空间的核心是Geohashes。 Geohash 是一个

    分层空间数据结构,将空间细分为网格形状的桶。

    我找不到 mongo 中 geohash 实现的相应链接,但是这个线可能会给出一些见解。

  • 2

    来自10gen 网站

    当前实现在标准 MongoDB B-trees 上编码地理哈希码。 $near 查询的结果是准确的。这种编码的一个限制虽然快,但是前缀查找不能给出精确的结果,特别是在位翻转区域周围。 MongoDB 通过在初始前缀扫描之后进行 grid-neighbor 搜索来解决这个问题,以获取任何落后者点。这通常可确保性能保持很高,同时提供正确的结果。

相关问题