mongodb GEO2D指数 - 公里?

时间:2015-09-29 17:21:12

标签: mongodb pymongo nosql

我的数据库中有一个地理空间索引。 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将距离解释为千米,而不是米。任何人都可以确认或解释发生了什么事吗?

1 个答案:

答案 0 :(得分:1)

如果您使用的是旧版2d索引,看起来就像您正在做的那样,那么$maxDistance是弧度的,根据您链接到的文档