【发布时间】: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 将距离解释为公里,而不是米。谁能确认或解释发生了什么?
【问题讨论】: