【问题标题】:mongodb GEO2D Index - kilometers?mongodb GEO2D 指数 - 公里?
【发布时间】:2015-12-27 07:03:31
【问题描述】:

我的数据库中有一个地理空间索引。 MongoDB's documentation 表示 $near 运算符采用米为单位的参数来查找匹配项。例如:

db.data.find({'coordinates': SON([('$near', [20.450550042732765, 80.52327036857605]), ('$maxDistance', 100)])}).count()

应该返回该位置 100 米范围内的匹配项。但是返回的太多了,大约 3,000 个。当我将查询重写为

db.data.find({'coordinates': SON([('$near', [20.450550042732765, 80.52327036857605]), ('$maxDistance', 1)])}).count()  

我收到 364 个结果。我不认为我的数据库在我查询点的 1 米半径内有 364 个匹配项。最后,如果我查询

db.data.find({'coordinates': SON([('$near', [20.450550042732765, 80.52327036857605]), ('$maxDistance', .1)])}).count()

我收到了 330 个匹配项。距离那个点 10 厘米以内肯定不会有 330 个结果。

我认为 mongodb 将距离解释为公里,而不是米。谁能确认或解释发生了什么?

【问题讨论】:

    标签: mongodb pymongo nosql


    【解决方案1】:

    如果您使用的是旧版 2d 索引,并且看起来您正在这样做,那么根据您链接到的文档,$maxDistance 以弧度表示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 2020-02-11
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      相关资源
      最近更新 更多