簡體   English   中英

PyMongo-MaxDistance操作正常,但結果不符合預期

[英]PyMongo - MaxDistance operation working but results are not as expected

我有以下pymongo查詢,用於從MongoDB(3.0)中檢索geoNear數據。 “距離”以kms為單位傳遞,我從MongoDB文檔中了解到“ maxDistance”必須以米為單位,因此我在查詢中使用“ distance * 1000”

 def getNearestVoices(self, longitude, latitude, distance, userid=None, count='500'):
            response = []
            for doc in self.users.aggregate([{"$geoNear": {"near": [longitude, latitude],
                                                           "distanceField":"distance",
                                                           "maxDistance": (distance * 1000),
                                                           "distanceMultiplier": 6371,
                                                           "num": int(count),
                                                           "spherical": True}}]):

                    pass

現在,當我通過“ 1”作為距離時,我的期望是返回匹配“ 1公里或更小”的“距離”,但是這沒有發生,並且返回了所有記錄。

我還注意到一件事,當我在mongo查詢中將“ distance * 1000”更改為“ distance / 1000”時,得到的記錄較少,但仍不符合我的期望。

我無法弄清楚查詢中出了什么問題。

PS:我正在使用distanceMultiplier 6371檢索我的輸出(以kms為單位)

謝謝

更改

"maxDistance": (distance * 1000)"

"maxDistance": (distance / 6371)

為我工作。 由於我使用的是距離乘數,因此我認為必須考慮在內

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM