我的数据库中有一个地理空间索引。 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将距离解释为千米,而不是米。任何人都可以确认或解释发生了什么事吗?
答案 0 :(得分:1)
如果您使用的是旧版2d
索引,看起来就像您正在做的那样,那么$maxDistance
是弧度的,根据您链接到的文档