2015-09-29 18 views
0

我在我的數據庫中有一個地理空間索引。 MongoDB's documentation表示$ near操作符以米爲單位的參數來查找匹配項。例如:mongodb GEO2D指標 - 公里?

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

應該返回距離該位置100米內的匹配。但返回的人數太多,大約有3000人。當我重寫查詢爲

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

如果您正在使用傳統的2d索引,並且它看起來像是您正在做的那樣,那麼$maxDistance以弧度表示,根據您鏈接的文檔。

+0

啊,沒有意識到我在使用遺留點。謝謝! – ZacharyST