2017-05-02 9 views
0

MongoDB(3.0)からgeoNearデータを取得する次のpymongoクエリがあります。私は「1」を渡すと、「距離」キロに渡され、私は「maxDistance」はメートルでなければならないのMongoDBのドキュメントから理解したので、私はPyMongo - MaxDistance操作は動作していますが、結果は期待通りではありません。

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 

今私のクエリに「距離* 1000」を使用しています距離は1キロメートル以下に一致する「距離」を返すことですが、これは起こらず、すべての記録が返されます。

私はmongoクエリで "distance * 1000"を "distance * 1000"に変更すると、1つのことに気付きました。

私の質問で何が間違っているのかわかりません。

PS:私は

"maxDistance": (distance/6371) 

に私のために働いた

"maxDistance": (distance * 1000)" 

を変更キロ

おかげ

答えて

0

で私の出力を取得するために、6371 distanceMultiplierを使用しています。私は距離乗数を使用しているので、それを考慮に入れなければならないと思う。

関連する問題